使用Python连接到Oracle数据实例时出现问题

时间:2019-04-02 14:47:45

标签: python-3.x oracle cx-oracle

我正在尝试使用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()

如果有帮助,我目前也拥有实例的portSIDhostname

运行此脚本会产生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 postthis post,但是我没有IP,只有主机名。

任何帮助将不胜感激。

1 个答案:

答案 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()