linux上 python使用cx_Oracle 连接 oracle 9i

来源:互联网 发布:以色列地区代码数据库 编辑:程序博客网 时间:2024/06/07 19:07

上次用python写过一段代码, 需要读取数据库,然后数据库是很久之前的,还是9i的版本,所以连接的时候就报错。

因为写这篇文章离我写这段代码已经过去了一段时间,而且当时操作的linux也不在旁边。所以有些东西就描述的不是很详细,也不能贴图了。 

像上面的这个报错就是说  版本不支持。 但是具体的错误码和英文错误信息就忘记了。 只记得大概就是这么个意思。

然后查了下数据库版本发现是9i的oracle, 之前连的都是12的。 


先简单说一下python连接数据库的步骤

去网上可以搜到很多的文章是关于python 怎么使用cx_Oracle 连接oracle数据库的。 


大概的步骤就是这几步,我就不详细写了。

1. 去oracle官网下一个客户端。安装之后配置环境变量

2. 用pip安装一个python端的库,cx_Oracle

3. 写一个测试脚本,连接一下数据库。


然后这个时候以为是python的包有问题, 想着找一个新的连接工具,但是一直没找到。 安装老版本的cx_Oracle包也不行。 

后来翻看cx_Oracle的官方文档发现, cx_Oracle6.1 也是支持Oracle9i 的。 后来忘记在哪个英文的文档上又看到这句话后面加了一个括号, 支持哪个版本的数据库是依赖于安装的client版本。 后面我在网上搜了好久,一直没有找到过这个英文网站了。 

所以知道了问题所在,就可以对应解决了。 直接去oracle官网上去下载客户端,下了一个最老的rpm包(10版本),发现不行,是因为python的cx_Oracle库不支持那么老的客户端。最低支持11.2, 于是再安装了一个11.2版本的oracle客户端。 再配置一下环境变量就可以了。 python的cx_Oracle库可以下载使用最新的版本。 


最后需要注意的是数据库的字符编码, 我连的9i数据库的中文编码不是 utf-8 , 所以需要在配置环境变量的时候配置一个  NLS_LANG的变量, 然后再到代码里边获取的中文进行解码再编码。 才能正确显示。 


网上一直没有文章直接说明这个问题, 希望碰到这个问题的人可以直接搜  python oracle 9i 就可以搜到我这个文章解决问题。


 

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 1周岁宝宝便秘怎么办 胃不好不想吃饭怎么办 胃不舒服没食欲怎么办 小孩不肯写作业怎么办 小孩不学写字怎么办 小孩总不想吃饭怎么办 小孩中班不写字怎么办 孩子没完成作业怎么办 小孩就是不写字怎么办 孩子上学不写字怎么办 小孩写字写不好怎么办 10小孩不爱写字怎么办 小孩吐怎么办 什么原因 做题做的想吐怎么办 考研做题粗心怎么办 反应迟钝脑子笨怎么办 小学生做题马虎怎么办 做题老是粗心怎么办 初三做题粗心怎么办 一年级做题粗心怎么办 孩子抄别人作业怎么办 发现孩子抄作业怎么办 孩子老是抄答案怎么办 高中生做题马虎怎么办 好学生成绩下滑怎么办 孩子不抄作业怎么办 发现孩子抄答案怎么办 孩子作业抄答案怎么办 初中孩子抄答案怎么办 小孩写作业马虎怎么办 孩子大便特别粗怎么办 学生因骄傲粗心怎么办 小孩做题马虎怎么办 孩子态度不端正怎么办 数学审题不认真怎么办 小孩作业不认真怎么办 孩子不认真审题怎么办 学生做题马虎怎么办 孩子做作业马虎怎么办 孩子做数学马虎怎么办 孩子成绩差家长怎么办