本次因为项目所给的数据库信息中,其中包含一条是数据库的版本是12c,因为12c的版本要比11g、12g还要高,所以导致我们之前一些数据库插件无法使用,只能上网查找。我在翻阅数据库的资料时,因为百度上的信息比较零散,所以找起来很麻烦,甚至到oracle官网上,面对客户端的插件,都不知道下载那个好,当然你可以全部下载下来。
1.需要下载的客户端插件到底是哪一个?instantclient-basic-nt-12,记住12c的版本号是12_2。还有插件是有分32bit和64bit
2.为什么我下载了客户端插件也放入了目录里面,运行起来,还是报 %1 不是有效的win32应用程序?第一可能你下载的插件和你的机子bit不符合;第二就是oc-oracle和插件不符合;第三就是你下载的插件不是该数据的版本。我已经将所有内容打包上传,通过访问链接就可以下载需要的内容。
3.为什么插件放在site-packages目录下还是rf编译还是失败?目前放在site-packages已经没用了,建议将插件的目录添加在PATH即可,也不需要建立ORACLE_PATH。
4.我编译数据库终于成功,但是查询中因为有中文,导致查询失败?建议在site-packages新增一个sitecustomize.py文件,在文件里面输入代码即可。
# -*- coding: utf-8 -*- import sys import os import cx_Oracle reload(sys) sys.setdefaultencoding('utf-8') os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
5.我运行数据库查询之后,查询的内容还是显示乱码?建议在site-packages中对databaselibrary文件中的query.py添加代码。然后再在我们编写的脚本里面新增一行,然后在输出即可。
def decode(self,code):
return code.decode('utf-8')
def __execute_sql(self, cur, sqlStatement):
return cur.execute(sqlStatement)
注意:通过研究,后面的数据意义是代表数据库行列关系
${n} decode ${a[1][2]}
另外附上问题上所需要用到的脚本/插件链接: https://pan.baidu.com/s/1stVghxlKVERSN5FP4cfcOw 提取码: vx3h