首先介绍一下自己的配置:
电脑:win7 64位
python: 3.5版本 64位
Oracle client 用的PLsql Developer (11.2.0.1.0 - 64位)
下载了cx_Oracle https://pypi.python.org/pypi/cx_Oracle/5.2.1
选择了下面版本
cx_Oracle-5.2.1-11g.win-amd64-py3.5.exe(md5) | MS Windows installer | 3.5 |
会出现错误:
- Traceback (most recent call last):
- File"<stdin>",line1,in<module>
- ImportError: DLL load Failed: %1不是有效的 Win32 应用程序。
这是需要下载一个64位的oci.dll,然后拷贝到python 中的lib/site-packages下
下载地址:
oci.dll下载地址(编程之家):http://www.jb51.net/dll/oci.dll.html#down
下载完成解压,选取其中的64位中的oci.dll复制到site-packages目录下即可。
但是可能还会出现问题,
Unable to acquire Oracle environment handle,这
时需要下载oraocci11.dll,
复制 oci.dll 依赖的 oraociei11.dll,这时将ocijdbc11.dll 到 \Python27\Lib\site-packages 目录下。如果不清楚就将 instantclient_11_2 目录下的 dll 都复制到 \Python27\Lib\site-packages 目录下
这时就OK啦
再试试import cx_Oracle
就不会出错。
然后连接db=cx_Oracle.connect('user_name/pass@数据库所在服务器ip地址:1521/SERVICE_NAME')
例如我的 db = cx_Oracle.connect('ccdm_bit/12345@10.2.3.666:1521/bitbizbd')
如果不知道service_name是多少,则进入Oracle client 中如我的路径:D:\oracle\product\
10.2.0\client_1\NETWORK,下的文件TNSNAMES.ORA,用编辑器打开,查看就能看到。哈哈,好了,我也是折腾了好久,终于连上数据库了!
特别注意:根据自己的版本选择
参考博客:http://blog.csdn.net/jianhong1990/article/details/8781989
#-*-coding:utf-8-*-
importos
os.environ['NLS_LANG']='SIMPLIFIEDCHINESE_CHINA.UTF8'
importcx_Oracle
db=cx_Oracle.connect(username/passwd@192.168.2.222:42401/xezf')
cursor=db.cursor()
rs=cursor.execute('select*fromcfg_haoduan_ghwhererownum<9')
li=rs.fetchall()
printli[0][3].decode('utf-8')
cursor.execute('insertintotest_cccvalues(1,sysdate,\'北\')')
db.commit()
db.close()
原文链接:https://www.f2er.com/oracle/212983.html
- importos
- os.environ['NLS_LANG']='SIMPLIFIEDCHINESE_CHINA.UTF8'
#-*-coding:utf-8-*-