Python连接oracle

Posted 王明辉的部落

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python连接oracle相关的知识,希望对你有一定的参考价值。

 

import cx_Oracle

conn = cx_Oracle.connect(用户名/密码@IP/ServiceName) #1个参数

conn = cx_Oracle.connect(用户名, 密码, IP/ServiceName) #3个参数

打开 D:\app\username\product\11.2.0\client_1\NETWORK\ADMIN路径下的tnsnames.ora

此处的IP为下列连接描述的HOST,ServiceName为SERVICE_NAME 

(DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 111.111.111.111)(PORT = 1521))
  )
  (CONNECT_DATA =
    (SERVICE_NAME = orcl)
  )
)

 

刚刚开始连接时,我机器上的oracle是32位客户端连64位服务器端,客户端位于 D:\app\username\product\11.2.0\client_1

尝试连接时,会报错如下:

cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: "d:\app\sabre\product\11.2.0\client_1\bin\oci.dll is not the correct architecture". See https://oracle.github.io/odpi/doc/installation.html#windows for help

按照提示中的链接,找到oracle的64位客户端文件package,下载,放到D:\instantclient_11_2,然后把这个路径添加到系统path中,再次尝试连接,就可以了。

 

以上是关于Python连接oracle的主要内容,如果未能解决你的问题,请参考以下文章

如何在python多进程代码中使用cx_Oracle创建一个连接(或会话)池来连接Oracle数据库?

oracle 第二个数据库实例,用plsql不能连接

如何在 Toad for Oracle 中使用自定义代码片段?

如何在Python下连接Oracle数据库

如何在Python下连接Oracle数据库

Python之如何优雅的重试