官网说明:https://www.oracle.com/database/technologies/appdev/python/quickstartpython.html

Windows通过python3连接OracleDB(无需配置环境变量)

首先获取Oracle Cloud客户凭证的包文件:Wallet.zip(按OracleCloud上说明获取),以下都按64位软件安装,因为代码中有包的指向语句,因此无需配置环境变量

1.安装python3.x:

https://www.python.org/downloads/windows/

2.安装cx_Oracle:

 python -m pip install cx_Oracle --upgrade --user 

如果出现错误,请尝试升级pip解决:

 python -m pip install --upgrade pip 

3.下载Oracle Instant Client 基础包:

可以下载Basic Package版就可以

https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html

解压文件到C:\Oracle\instantclient_19_11,在里面建立两层文件夹:network\admin(network文件夹里面在建立个admin文件夹),后面用于存放Oracle Cloud的连接必要凭证文件

4.将开始获得的Wallet.zip文件解压,将Wallet文件夹里面的所有文件移动到刚创建的network下的admin目录里

5.创建并运行一个python最简单程序,出现查询结果“x”,则成功接上数据库:

出现错误问题可能:

a.Python位数或版本跟oracleclient不匹配

b.没正确有安装cx_Oracle包

c.没有正确下载配置Oracle Instant Client基础包

d.没有放对Wallet.zip包里面的文件位置

e.代码中指向的Oracle Instant Client包路径不对

f.错误的OracleCloudDB的账号密码或Wallet信息

Test.py

import cx_Oracle
cx_Oracle.init_oracle_client(lib_dir=r"C:\oracle\instantclient_19_9")          #第三步包的位置
connection = cx_Oracle.connect(user="XXXX", password="XXXX", dsn="XXX_dbhigh") #dsn连接方式在wallet的tnsnames.ora可以找到
cursor = connection.cursor()
for row in cursor.execute('select * from dual'):
    print(row)

Linux通过Python3连接OracleDB(需配置环境变量)

首先获取Oracle Cloud客户凭证的包文件:Wallet.zip(按OracleCloud上说明获取),以下都按64位软件安装,因为代码修改环境变量的方法无效,因此需配置环境变量

1.安装python3.x:

 sudo yum install -y python3 

2.安装cx_Oracle

 python3 -m pip install cx_Oracle --upgrade --user 

3.安装Instant Client

a.配置Instant Client存储库:

 sudo yum install oracle-instantclient-release-el7 

b.安装basic包:

 sudo yum install oracle-instantclient-basic 

4.如果完成第三步,应该会出现类似/usr/lib/oracle/19.10/client64/lib/network/admin/目录,然后将Wallet.zip里面的文件,解压并移动到admin文件夹中:

sudo cp Wallet_*.zip /usr/lib/oracle/21/client64/lib/network/admin/
sudo sh -c 'cd /usr/lib/oracle/21/client64/lib/network/admin/ && unzip -B Wallet_*.zip'

5.有些情况需要配置环境变量,在控制台中输入:

export TNS_ADMIN=/usr/lib/oracle/21/client64/lib/network/admin/

export LD_LIBRARY_PATH=/usr/lib/oracle/21/client64/lib 

6.创建并一个python最简单程序,在控制台输入python3 Test.py运行程序,出现查询结果“x”,则成功接上数据库:

Test.py

import cx_Oracle
connection = cx_Oracle.connect(user="XXXX", password="XXXX", dsn="XXX_dbhigh") #dsn连接方式在wallet的tnsnames.ora可以找到
cursor = connection.cursor()
for row in cursor.execute('select * from dual'):
    print(row)

 

相关文章:

  • 2022-01-04
  • 2021-10-20
  • 2021-11-27
  • 2021-07-19
  • 2021-08-10
  • 2021-11-22
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-04-04
  • 2022-01-21
  • 2021-12-31
  • 2022-12-23
  • 2021-11-23
相关资源
相似解决方案