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不兼容等等,按照我这个流程走的话不到十分钟你就可以搞定了数据库的连接了,如果你也遇到以上问题可以看看自己少了哪一步。

废话少说先上资源:

278493db68dab8870f7ccee3513a92f2.png

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

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

2.选中这两个解压缩:

6843cef1c8d8afee29fef10b958c5b5d.png

具体安装流程看这里

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

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

3b6a0ff18a4b272e09cd46c42220397c.png

afc467192bb46b3a677c298b4b4854df.png

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

c50f48f3cfa44e3783071b7bcb2b33d1.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问题)

771a70659be72b33ec5960b0bce46d0b.png

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

e523a756530dfad4ffda370e9092de01.png

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

090ecbdf69dec00fa2c39f0ed653d93d.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!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值