1. 1 不可撤销
  2. 2 小年兽 程嘉敏
  3. 3 手放开 李圣杰
  4. 4 迷人的危险3(翻自 dance flow) FAFA
  5. 5 山楂树之恋 程佳佳
  6. 6 summertime cinnamons / evening cinema
  7. 7 不谓侠(Cover 萧忆情Alex) CRITTY
  8. 8 神武醉相思(翻自 优我女团) 双笙
  9. 9 空山新雨后 音阙诗听 / 锦零
  10. 10 Wonderful U (Demo Version) AGA
  11. 11 广寒宫 丸子呦
  12. 12 陪我看日出 回音哥
  13. 13 春夏秋冬的你 王宇良
  14. 14 世界が终わるまでは… WANDS
  15. 15 多想在平庸的生活拥抱你 隔壁老樊
  16. 16 千禧 徐秉龙
  17. 17 我的一个道姑朋友 双笙
  18. 18 大鱼  (Cover 周深) 双笙
  19. 19 霜雪千年(Cover 洛天依 / 乐正绫) 双笙 / 封茗囧菌
  20. 20 云烟成雨(翻自 房东的猫) 周玥
  21. 21 情深深雨濛濛 杨胖雨
  22. 22 Five Hundred Miles Justin Timberlake / Carey Mulligan / Stark Sands
  23. 23 斑马斑马 房东的猫
  24. 24 See You Again Wiz Khalifa / Charlie Puth
  25. 25 Faded Alan Walker / Iselin Solheim
  26. 26 Natural J.Fla
  27. 27 New Soul Vox Angeli
  28. 28 ハレハレヤ(朗朗晴天)(翻自 v flower) 猫瑾
  29. 29 像鱼 王贰浪
  30. 30 Bye Bye Bye Lovestoned
  31. 31 Blame You 眠 / Lopu$
  32. 32 Believer J.Fla
  33. 33 书信 戴羽彤
  34. 34 柴 鱼 の c a l l i n g【已售】 幸子小姐拜托了
  35. 35 夜空中最亮的星(翻自 逃跑计划) 戴羽彤
  36. 36 慢慢喜欢你 LIve版(翻自 莫文蔚) 戴羽彤
  37. 37 病变(翻自 cubi) 戴羽彤
  38. 38 那女孩对我说 (完整版) Uu
  39. 39 绿色 陈雪凝
  40. 40 月牙湾 LIve版(翻自 F.I.R.) 戴羽彤
夜空中最亮的星(翻自 逃跑计划) - 戴羽彤
00:00 / 04:10

夜空中最亮的星 能否听清

那仰望的人 心底的孤独和叹息

夜空中最亮的星 能否记起

那曾与我同行 消失在风里的身影

我祈祷拥有一颗透明的心灵

和会流泪的眼睛

给我再去相信的勇气

越过谎言去拥抱你

每当我找不到存在的意义

每当我迷失在黑夜里

噢喔喔 夜空中最亮的星

请指引我靠近你

夜空中最亮的星 是否知道

那曾与我同行的身影 如今在哪里

夜空中最亮的星 是否在意

是等太阳先升起 还是意外先来临

我宁愿所有痛苦都留在心底

也不愿忘记你的眼睛

哦 给我再去相信的勇气

哦 越过谎言去拥抱你

每当我找不到存在的意义

每当我迷失在黑夜里

噢喔喔 夜空中最亮的星

请照亮我向前行 哒~

我祈祷拥有一颗透明的心灵

和会流泪的眼睛 哦

给我再去相信的勇气

哦 越过谎言去拥抱你

每当我找不到存在的意义

每当我迷失在黑夜里

噢喔喔 夜空中最亮的星

请照亮我向前行

python操作Oracle数据库

python操作Oracle数据库

安装cx_Oracle

cx_Oracle相当于python的Oracle数据库的驱动,必须有驱动才能连接Oracle数据库,具体方法如下:

方法一:直接在官方网站下载,然后安装

https://pypi.org/project/cx-Oracle/

选择对应的系统及版本,然下载安装

方法二:通过pip安装

pip install cx-Oracle

我是同第二种方式安装,可以通过如下方式检查自己是否已经安装,以及安装的版本信息:

 pip show -f cx-Oracle

添加Oracle客户端配置

下载Oracle数据库对应的客户端

查看数据库版本

可以通过如下sql查看版本信息:

select * from v$version;

比如我的Oracle数据库版本号为:

1	Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
2	PL/SQL Release 11.2.0.4.0 - Production
3	"CORE	11.2.0.4.0	Production"
4	TNS for Linux: Version 11.2.0.4.0 - Production
5	NLSRTL Version 11.2.0.4.0 - Production
下载数据库客户端

具体下载地址如下:

https://www.oracle.com/cn/database/technologies/instant-client/downloads.html

选择对应的操作系统和版本,当然必须得和你的python版本一致(64Bit/32Bit)

因为我的数据库版本是:11.2.0.4.0,所以我下载的客户端版本也是这个版本instantclient-basic-windows.x64-11.2.0.4.0.zip

然后解压,并将解压后的地址信息加入到操作系统环境变量中,比如我的文件夹路径为:

E:\app\myUserName\product\11.2.0_64bit

那么,我的环境变量设置如下:

上面的环境变量是添加在path这个变量底下的。

配置TNS

创建tnsnames.ora

进入如下目录,并创建tnsnames.ora文件。如果没有可以手动创建(我是之前安装过完整版客户端,所以已经有了,我从已经安装过的目录下直接拷贝,之前安装的是32Bit)

E:\app\myUserName\product\11.2.0_64bit\network\admin

也有人说可以在上面添加的环境变量的目录下直接创建这个文件(即E:\app\myUserName\product\11.2.0_64bit),我没有尝试过,如果有小伙伴试过了可行,请告诉我,谢谢!

配置数据库信息

打开刚刚创建的tnsnames.ora文件,加入你的数据库连接配置(TNS配置):

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = host)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
      (INSTANCE_NAME = orcl1)      
    )
  )

你如果有用ql/sql的话,对这个文件应该不陌生,host就是你的数据库ip地址,PORT就是数据库端口,SERVER一般应该都一样(我猜的),SERVICE_NAMEINSTANCE_NAME应该是你创建数据库的时候设置的,没创建过Oracle数据库,我只负责用😂。

添加完以上配置信息,然后就该开始编写我们的测试脚本了

编写python脚本

脚本很简单,就几行代码:

#!/usr/bin/env python
import cx_Oracle
# 格式:用户名/密码@主机:端口/SERVICE_NAME
con = cx_Oracle.connect('userName/Password@host:1522/orcl') 
# 格式:用户名,密码,主机:端口/SERVICE_NAME
con2 = cx_Oracle.connect('userName', 'Password', 'host:1522/orcl') 
print(con.version)
print(con2.version)

这里解释下,其实也不用解释,因为确实很简单。引入cx_Oracle,然后获取数据库连接,打印数据库版本。获取数据库有两种方式,区别不大,都是将用户名、密码、主机、端口、服务传入,然后获取数据库连接。

遇到的问题

如果你能正常打印数据库版本信息,那么恭喜你,第一次就如此完美的取得成功。很多人,包括我,在进行以上步骤都遇到了很多问题,说下我的问题,报错信息如下:

cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded:  "libclntsh.so: cannot open shared object file: No such file or directory". See https://oracle.github.io/odpi/doc/installation.html#linux for help

和以上错误很类似,因为没保留错误信息,所以我大概根据浏览器历史记录查了下。我查询的结果是说python版本和Oracle数据库客户端版本不一致,因为我的python是64位的,数据库客户端版本是32位,然后我下载64位客户端,并替换了环境变量,重启了电脑,依然不行,几经折腾,最后我发现有篇博客说是需要在python安装根目录下复制Oracle配置的dll文件,想尝试的时候,发现文件夹没权限,最后忍无可忍,我把python重新安装(3.8),然后安装pip并重新安装cx-Oracle(cx_Oracle-7.3.0,pip直接安装),竟然神奇的好了,嗯~ o( ̄▽ ̄)o还好我没放弃😂

完善脚本,执行查询

完成以上步骤,说明我们已经完成了python连接Oracle数据库的配置工作,接下来我们将了解如何执行sql语句,并获取返回结果。其实,也很简单,参照如下代码即可。

	# 获取数据库游标对象
    cursor= connection.cursor()
    # sql参数集
    params = {'aapid': aapid,'yearMonth':'2020-02'}
    # sql
    sql = '''SELECT * FROM log WHERE CreateTime like :yearMonth||'%'
    AND aapid=:aapid '''
    # 执行sql
    query = cursor.execute(sql, params)
	# 获取查询结果集
    rows = cursor.fetchall()  
	# 获取结果列(数据库字段名)
    titles = cursor.description 
    print(rows)
    print(titles)

执行以上代码,即可打印sql查询到的结果集。需要注意的是,sql查询参数集是通过字典的形式导入的,然后在sql中通过: + 键名的方式传入参数。

当然能执行sql的方法不止上面的一种,比如你需要入参的时候,可以通过如下方式执行查询:

sql = "select * from test limit 10"  # 在test表中取出十条数据
search_count = cursor.execute(sql)

有关其他的插入、更新、删除、建表等操作,后续再继续进行深入探索,主要是我现在也不会啊😂好了,今天就到这里吧,不早了,早点休息吧,晚安,好梦!

posted @ 2020-03-01 15:31  云中志  阅读(2323)  评论(0编辑  收藏  举报