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

网上有说配置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/000000@127.0.0.1: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()

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值