python cx_oracle 有超时的设置吗_Oracle数据库之Python cx_Oracle问题处理

本文主要向大家介绍了Oracle数据库之Python cx_Oracle问题处理,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。

今天第一次使用Python连接Oracle数据库(多么可怕,三年码农没用Python手动连过Oracle)

首先:

pip install cx_Oracle

好,安装完成,测试代码如下:

from sqlalchemy import create_engine

db_engine = create_engine(‘oracle://xynsx:whjyg_xynsx@10.128.85.8: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-8

import os

from sqlalchemy import create_engine

os.environ[‘NLS_LANG‘] = ‘SIMPLIFIED CHINESE_CHINA.UTF8‘

db_engine = create_engine(‘oracle://xynsx:whjyg_xynsx@10.128.85.8: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)

本文由职坐标整理并发布,希望对同学们学习Oracle有所帮助,更多内容请关注职坐标数据库Oracle数据库频道!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值