gpt4 book ai didi

python - 使用 cx_oracle 连接 Oracle 12c 时出错

转载 作者:行者123 更新时间:2023-12-04 17:18:42 28 4
gpt4 key购买 nike

我正在尝试使用 cx_oracle 连接 Oracle 12c 数据库。我的代码如下:

import cx_Oracle
from cx_Oracle import DatabaseError
import pandas as pd
import credaws
import os

os.system('export ORACLE_HOME=/opt/app/oracle/product/client_12_2')
os.system('export PATH=$ORACLE_HOME/bin:$PATH')
os.system('export LD_LIBRARY_PATH=$ORACLE_HOME/lib')

try:
# cx_Oracle.init_oracle_client(lib_dir=libdir)
dsn_tns=cx_Oracle.makedsn(credaws.host_name,credaws.port_number,service_name=credaws.service_name)
conn = cx_Oracle.connect(user=credaws.user,password=credaws.password,dsn=dsn_tns)
if conn:
cursor = conn.cursor()
print('Connection Successful')
except DatabaseError as e:
err, = e.args
print("Oracle-Error-Code:", err.code)
print("Oracle-Error-Message:", err.message)

finally:
cursor.close()
conn.close()

我仍然收到此错误:

enter image description here

Oracle 12c 安装在/opt/app/oracle/product/client_12_2 位置。我做错了什么?

编辑 1:我在调用 cx_oracle 连接方法之前设置 ORACLE_HOME、PATH 和 LD_LIBRARY_PATH 环境变量。但是,仍然出现相同的错误。

编辑 2:以 oracle 用户身份运行此脚本时,出现以下错误:

enter image description here

最佳答案

这个问题对我帮助很大。一段时间以来,我一直在努力连接到 Oracle 数据库。我只是直接传入连接字符串以连接到数据库并且它有效。这是有风险的,但该脚本仅供我个人使用。我刚接触 python。这是我的代码。

import os  
import cx_Oracle

os.system('set ORACLE_HOME=C:\\oraclexe\\app\\oracle\\product\\10.2.0\\server')
os.system('set PATH=$ORACLE_HOME/bin:$PATH')
os.system('set LD_LIBRARY_PATH=$ORACLE_HOME/lib')

#Test to see if the cx_Oracle is recognized
print(cx_Oracle.version) # this returns 8.2.1

cx_Oracle.clientversion()
# I just directly passed in the connection string
con = cx_Oracle.connect('USERNAME/PWD@SERVER:PORT/DATABASENAME')
cur = con.cursor()
try:
# test the connection by getting the db version
print("Database version:", con.version)

cur.execute("select * from products order by 1")
res = cur.fetchall()
print('Number of products is ',len(res))
for row in res:
print(row)
except cx_Oracle.DatabaseError as e:
err, = e.args
print("Oracle-Error-Code:", err.code)
print("Oracle-Error-Message:", err.message)
finally:
cur.close()
con.close()

关于python - 使用 cx_oracle 连接 Oracle 12c 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67569996/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com