python 连接oracle
python 连接oracle
1. 安装cx_Oracle
pip3 install cx_Oracle
2. 下载oracle instant client
下载地址 .html,这里注意下载正确的版本,不要下混了
3. 配置环境变量
- 将 instantclient_xxx 文件夹复制到指定文件夹下,然后解压。注意需要讲最后一层的文件夹命名为lib,否则会报错。oracle 识别的是
libocci.so
,因此你需要复制重命名你的lib下面的文件libocci.so.xxx.xx
为正确的名称。然后配置环境变量ORACLE_HOME
。若系统为Linux,则配置还要配置LD_LIBRARY_PATH
,否则会提示cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libnnz11.so: cannot open shared object file: No such file or directory". See .html for help
。配置命令如下:
export LD_LIBRARY_PATH=$ORACLE_HOME/lib/:$LD_LIBRARY_PATH
- 出现
libnsl.so.1
找不到错误 前往 /lib64 查看是否有libnsl.so.2.0.0
,使用软链或者直接复制一份,改为libnsl.so.1
4. 测试连接
代码语言:python代码运行次数:0运行复制host = "192.168.1.xxx"
port = "1521"
service = "orcl"
username = "xxx"
password = "xxx"
dsn_tns = cx_Oracle.makedsn(host, port, service_name=service)
pool = cx_Oracle.SessionPool(user=username, password=password, dsn=dsn_tns, min=1, max=10, increment=1)
onn = pool.acquire()
cursor = self.conn.cursor()
cursor.execute("select * from dual", {})
pool.release(self.conn)