如何使用 Python 远程连接到本地服务器上的 Oracle 数据库?
我尝试过使用 cx_Oracle 库,但我不知道如何连接到不在我的本地计算机或云上的数据库
假设网络和防火墙允许连接,那么我会这样做:
python -m pip install oracledb
然后使用如下脚本:
import oracledb
import traceback
import os
un = os.environ.get('PYTHON_USERNAME')
pw = os.environ.get('PYTHON_PASSWORD')
cs = os.environ.get('PYTHON_CONNECTSTRING')
try:
connection = oracledb.connect(user=un, password=pw, dsn=cs)
with connection.cursor() as cursor:
sql = """select systimestamp from dual"""
for r in cursor.execute(sql):
print(r)
except oracledb.Error as e:
error, = e.args
traceback.print_tb(e.__traceback__)
print(error.message)
关键是要设置
PYTHON_CONNECTSTRING
环境变量。从 'Easy Connect' 语法开始。查找运行数据库的主机名或 IP 地址(例如 myhost.oracle.com)。查找数据库的服务名称(不是旧的“SID”)(例如服务名称可能是“orclpdb1”)。还有一个正在侦听的端口(默认为 1521)。然后将 PYTHON_CONNECTSTRING
环境变量设置为 myhost.oracle.com:1521/orclpdb1
。
还有其他可用的连接字符串语法,如手册中所示。