anaconda(64位)安装cx_oracle实现python访问oracle

1. python 访问oracle确实不像jdbc那样成熟,问题颇多

2. 用anaconda安装cx_Oracle模块比较简单,在Environments中搜索到cx_Oracle模块,下载安装即可。复杂的遇到安装

问题如何解决。

3. 验证cx_oracle模块是否成功的方法,进入python命令行,

>>> import cx_Oracle

>>>

没有报错,即是成功。

4. 值得注意的是,安装cx_Oracle模块,要保证版本的统一,位数的统一,即oracle数据库、oracle客户端和python环境、cx_oracle模块要保持一致(都是32位或者64位)。版本统一是指,cx_oracle模块会指明python的版本(2.7;3.6等等)和oracle数据库的版本(10;11;12等等)。如果不一致,就不要折腾了。

遇见问题:

1.cx_Oracle.DatabaseError: DPI-1005: unable to acquire Oracle environment handle

解决方法:问题本质是找不到oracle数据库的路径了,既然cx_oracle通过oci.dll访问数据库,那就让cx_oracle清晰的找到OCI.dll

扫描二维码关注公众号,回复: 2426473 查看本文章

网上有说配置oracle客户端的环境变量的;也有说把OCI.dll放到Anaconda3\Lib\site-packages中的;说法很多,目的是一致的。

我是将 oracle客户端的oci.dll, oraociei10.dll, oraocci10.dll放到Anaconda3目录下了。然后就可以了。

示例代码:

import cx_Oracle as oracle

def main():
	#cx_Oracle.connect("用户名 /  密码@ Oracle服务器IP  /  Oracle的SERVICE_NAME")
	db = oracle.connect('hive/[email protected]:1521/XE')
	c=db.cursor()                      #获取cursor
	x=c.execute('select * from us_tab')          #使用cursor进行各种操作
	rows = c.fetchall()
	for row in rows:
		for v in row:
			print(v)
#	x.fetchone()
	c.close()                         #关闭cursor
	db.close()                       #关闭连接

if __name__ == '__main__':
  main()

猜你喜欢

转载自blog.csdn.net/beishafengjiang/article/details/81204366