我正在尝试使用Python脚本连接到Oracle数据实例(ORAD)。
这是基本脚本:
import cx_Oracle
conn = cx_Oracle.connect("username/password@//server:1560/orad")
c = conn.cursor()
c.execute('select distinct * from table1')
for row in c:
print(row)
conn.close()
如果有帮助,我目前也拥有实例的port
,SID
和hostname
。
运行此脚本会产生cx_Oracle.DatabaseError: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
错误,
而使用其他连接(已注释掉)会产生错误SyntaxError: invalid syntax
我不确定自己在做什么错。我确实检查了我的TNSNAMES.ORA
文件,其中包含一些受DBA保护的ifile
链接(我无权查看或编辑)其他文件。
我看过this post和this post,但是我没有IP,只有主机名。
任何帮助将不胜感激。
答案 0 :(得分:0)
以下答案和脚本有效:
def get_data(database, username, password, sql_statement):
import cx_Oracle
dsn_tns = cx_Oracle.makedsn('<server>', '<port>', '<sid>')
connection = cx_Oracle.connect(username, password, dsn_tns)
c = connection.cursor()
c.execute(sql_statement)
# Print the returning dataset
for row in c:
print(row)
# Close the connection
connection.close()