如何使用Python远程连接到本地服务器上的Oracle数据库



如何使用Python远程连接到本地服务器上的Oracle数据库?

我试过使用cx_Oracle库,但我不知道如何连接到不在本地计算机或云上的数据库

假设网络和防火墙允许连接,那么我会这样做:

python -m pip install oracledb

然后使用如下脚本:

import getpass
import os
import oracledb
un = os.environ.get('PYTHON_USERNAME')
cs = os.environ.get('PYTHON_CONNECTSTRING')
pw = getpass.getpass(f'Enter password for {un}@{cs}: ')
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)

关键是要将PYTHON_CONNECTSTRING环境变量设置为什么。从"Easy Connect"语法开始。查找数据库运行的主机名或IP地址(例如myhost.oracle.com(。查找数据库的服务名称(而不是旧的"SID"((例如服务名称可能是"orclpdb1"(。还将有一个正在侦听的端口(默认值为1521(。然后将PYTHON_CONNECTSTRING环境变量设置为myhost.oracle.com:1521/orclpdb1

还有其他可用的连接字符串语法,如手册中所示。

最新更新