pycharmcx_oracle报错,Python(Pycharm)连接Oracle数据库之cx_Oracle的使用(cx_Oracle在pyCharm中报错)...

首先声明Python27+Windows32安装

我的电脑Windows版本是64位的,但是由于Pycharm中的pycrypto中使用了C语言的代码所以我在装Pycharm的时候装的是32位的,不需要下载其他插件去支持它。

其次,为了兼容32位Pycharm所以我安装了32位的Oracle,这也是需要特别注意的一点,Pycharm的版本必须和Oracle数据库版本相对应。否则安装上去之后连接不了。我就吃了一次亏,然后就是各种找注册表完全卸载Oracle重装。折腾了一天多时间遇到很多问题,例如终端可以运行成功但是IDE总是cx_Oracle.InterfaceError: Unable to acquire Oracle environment handle、找不到指定模块、32位与Python不兼容等等,按照我这个流程走的话不到十分钟你就可以搞定了数据库的连接了,如果你也遇到以上问题可以看看自己少了哪一步。

废话少说先上资源:

b4f45a8805d620f216450a3ba5d79418.png

百度云盘链接:http://pan.baidu.com/s/1o8bjGzo 密码:ey4u

1.如果没有Python的先安装Python27.具体安装步骤一直next就行。

2.选中这两个解压缩:

a5dbfb7e3381cd3fe540875c2493310e.png

具体安装流程看这里

http://www.2cto.com/database/201208/150620.html

安装完成之后根据你安装的Oracle目录找到以下这两个文件并复制:

948d7b517ddbe88ee41689c2353ebe94.png

38951855429c638fbc72ff787e2aeb4b.png

把以上两个文件复制到你安装的Python的根目录例如我将这两个文件复制到我的Python根目录:

6250225952b8f9b74f73db54368b3ad5.png

3.安装cx_Oracle,一直next就行。

4.解压缩instantclient-basic-win32-11.2.0.1.0.zip得到文件

(解决Pycharm运行中cx_Oracle.InterfaceError: Unable to acquire Oracle environment handle问题)

23d92c7aa6dd022761417c68755fd637.png

全选复制到你的Python根目录\Lib\site-packages例如我的:

7eacd5651d8bdf766032f637fe6f31fc.png

5.然后打开Pycharm-File-Setting你会发现

a066f7e8af18b26da06a30883de6248f.png

6.接下来让我们运行一段代码吧

cmd终端直接运行

python

import cx_Oracle

cx_Oracle.connect('Nfcos_dev/nfc2017dev@//192.168.39.198:1521/nfcos')

cursor = conn.cursor()

cursor.execute('select * from tbl_pay_order_info')

result = cursor.fetchall()

print (cursor.rowcount)

for row in result:

print row#此处特别注意前面空格

cursor.close()

conn.close()

用Pycharm

# coding:UTF-8

#引用模块cx_Oracle

import cx_Oracle

import unittest

class ConnectOracle(unittest.TestCase):

def test_oracleConnect(self):

try:

#连接数据库,参数参考cx_Oracle使用

conn = cx_Oracle.connect('用户名/密码@localhost:1521/数据库名称')

#获取cursor

cursor = conn.cursor()

#使用cursor进行各种操作

cursor.execute('select * from 你的表名')

result = cursor.fetchall()

print (cursor.rowcount)

for row in result:

print row

#关闭cursor

cursor.close()

#关闭连接

conn.close()

except cx_Oracle.Error, e:

print "Oracle Error %d: %s", e.args[0], e.args[1]

if __name__ == '__main__':

# ConnectOracle().test_oracleConnect()

suite = unittest.TestSuite()

suite.addTest(ConnectOracle("test_oracleConnect"))

unittest.TextTestRunner().run(suite)

怎么样?是不是得到你想要的结果了。最后只想对自己说一句:So easy!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值