Python cx_Oracle问题处理,pythoncx_oracle,今天第一次使用Pyt
Python cx_Oracle问题处理,pythoncx_oracle,今天第一次使用Pyt
今天第一次使用Python连接Oracle数据库(多么可怕,三年码农没用Python手动连过Oracle)
首先:
pip install cx_Oracle
好,安装完成,测试代码如下:
from sqlalchemy import create_engine db_engine = create_engine(‘oracle://xynsx:[email protected]:1521/xyora‘) conn=db_engine.connect()result=conn.execute(‘SELECT * FROM PJ_CZP‘)conn.close()for item in result:print(‘item------------->‘, item)
好,从这开始,悲剧了
sqlalchemy.exc.DatabaseError: (cx_Oracle.DatabaseError) DPI-1047: 32-bit Oracle Client library cannot be loaded:
"The specified module could not be found". See https://oracle.github.io/odpi/doc/installation.html#windows for help
(Background on this error at: http://sqlalche.me/e/4xp6)
报错了,简单看是因为我用的是32位的Oracle Client 包,它找不到了。立马从Navicat Premium安装路径中找到instantclient_11_2,在其目录下找到三个dll文件:
oci.dll,oraocci11.dll,oraociei11.dll,拷贝到Python目录下的:Lib\site-packages目录下
再次测试,再次悲剧,提示不能加载正常,好吧,我的Navicat Premium是64位的,重新下载一个instantclient_11_2的32位版本,然后三个dll文件重新拷贝。
成功,数据取到了,但是。。。。。
各种问好是什么鬼?
查看发现Oracle默认编码格式为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
找到原因,就要改正了。
修改代码如下:
# coding:utf-8import osfrom sqlalchemy import create_engine os.environ[‘NLS_LANG‘] = ‘SIMPLIFIED CHINESE_CHINA.UTF8‘db_engine = create_engine(‘oracle://xynsx:[email protected]:1521/xyora‘) conn=db_engine.connect()result=conn.execute(‘SELECT * FROM PJ_CZP‘)conn.close()print(‘res===============>‘, result)for item in result:print(‘item------------->‘, item)
好了,完全木有问题了!
Python cx_Oracle问题处理
相关内容
- 随机生成双色球号码和商品管理python程序,双色球pyt
- [python篇] [伯乐在线][1]永远别写for循环,python伯乐,首先
- python 读取中文CSV 'gbk' codec can't de
- python 读取文件第一列 空格隔开的数据,,file=open(
- idapython api 记录,idapythonapi,GetOperand
- python random 的用法,pythonrandom用法,python ran
- 玩了下opencv的aruco(python版),opencvaruco,简单的玩了下
- Kafka(八)Python生产者和消费者API使用,kafkapython,单线
- python正则表达式re 中m.group和m.groups的解释,m.groupm.gro
- python 简单爬虫(beatifulsoup),pythonbeatifulsoup,---恢复内容
评论关闭