使用 VBA,我可以通过以下方式与 Oracle 建立
dsnless
连接。
Driver={Oracle in OraClient21Home1};DBQ=<<string_returned_from_tnsping>>;User Id=fake_user;Password=fake_password;
有没有类似的方法可以在Python中使用
oracledb
做同样的事情?
import os
import platform
import oracledb
ld = None # On Linux, pass None
if platform.system() == 'Darwin':
ld = str(os.environ.get('HOME'))+'/Downloads/instantclient_23_3'
elif platform.system() == 'Windows':
ld = r'C:\oracle\instantclient_19_23'
oracledb.init_oracle_client(lib_dir=ld)
print('Using Thick mode')
un = 'cj'
pw = 'cj'
with oracledb.connect(user=un, password=pw) as connection:
with connection.cursor() as cursor:
sql = """select systimestamp from dual"""
for (r,) in cursor.execute(sql):
print(r)
如果您将旧的 Oracle 环境变量
TWO_TASK
设置为连接字符串,这实际上也适用于远程数据库的 Instant Client。