您的位置:首页 > 数据库 > Oracle

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

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

废话少说先上资源:



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

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

2.选中这两个解压缩:



具体安装流程看这里

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

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





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



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

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

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



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



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



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!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息