在类似的情况下,我能够通过使用cx_Oracle.makedsn()
给定的(而不是服务名)创建 字符串来连接到数据库SID
:
dsnStr = cx_Oracle.makedsn("oracle.sub.example.com", "1521", "ora1")
@H_419_7@这返回类似
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle.sub.example.com)(PORT=1521)))(CONNECT_DATA=(SID=ora1)))
@H_419_7@然后可以用来
cx_Oracle.connect()
连接数据库:con = cx_Oracle.connect(user="myuser", password="mypass", dsn=dsnStr) print con.version con.close()
@H_419_7@解决方法
我有一个看起来像这样的连接字符串
con_str = "myuser/mypass@oracle.sub.example.com:1521/ora1"
ora1
我的数据库的SID在哪里。在SQL Developer中使用此信息可以正常工作,这意味着我可以毫无问题地进行连接和查询。但是,如果我尝试使用此字符串连接到Oracle,它将失败。
cx_Oracle.connect(con_str) DatabaseError: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
但是,如果连接
ora1
是服务名称,则此连接字符串格式有效。我看过其他问题,似乎与我的问题相反(它可以与SID一起使用,但不能与服务名一起使用)
使用
cx_Oracle
,SID
而不使用服务名称连接到Oracle的正确方法是什么?我如何做到这一点而无需调整TNSNAMES.ORA
文件?我的应用程序在内部分发给许多用户,并且TNSNAMES
在与Windows计算机上没有管理员特权的用户打交道时,对文件进行更改并不理想。此外,当我使用服务名称时,我完全不需要触摸此文件,而是希望它保持这种状态。
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle.sub.example.com)(PORT=1521)))(CONNECT_DATA=(SID=ora1)))
@H_419_7@然后可以用来
cx_Oracle.connect()
连接数据库:con = cx_Oracle.connect(user="myuser", password="mypass", dsn=dsnStr) print con.version con.close()
@H_419_7@解决方法
我有一个看起来像这样的连接字符串
con_str = "myuser/mypass@oracle.sub.example.com:1521/ora1"
ora1
我的数据库的SID在哪里。在SQL Developer中使用此信息可以正常工作,这意味着我可以毫无问题地进行连接和查询。但是,如果我尝试使用此字符串连接到Oracle,它将失败。
cx_Oracle.connect(con_str) DatabaseError: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
但是,如果连接
ora1
是服务名称,则此连接字符串格式有效。我看过其他问题,似乎与我的问题相反(它可以与SID一起使用,但不能与服务名一起使用)
使用
cx_Oracle
,SID
而不使用服务名称连接到Oracle的正确方法是什么?我如何做到这一点而无需调整TNSNAMES.ORA
文件?我的应用程序在内部分发给许多用户,并且TNSNAMES
在与Windows计算机上没有管理员特权的用户打交道时,对文件进行更改并不理想。此外,当我使用服务名称时,我完全不需要触摸此文件,而是希望它保持这种状态。
con = cx_Oracle.connect(user="myuser", password="mypass", dsn=dsnStr) print con.version con.close()
@H_419_7@解决方法
我有一个看起来像这样的连接字符串
con_str = "myuser/mypass@oracle.sub.example.com:1521/ora1"
ora1
我的数据库的SID在哪里。在SQL Developer中使用此信息可以正常工作,这意味着我可以毫无问题地进行连接和查询。但是,如果我尝试使用此字符串连接到Oracle,它将失败。
cx_Oracle.connect(con_str) DatabaseError: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
但是,如果连接
ora1
是服务名称,则此连接字符串格式有效。我看过其他问题,似乎与我的问题相反(它可以与SID一起使用,但不能与服务名一起使用)
使用
cx_Oracle
,SID
而不使用服务名称连接到Oracle的正确方法是什么?我如何做到这一点而无需调整TNSNAMES.ORA
文件?我的应用程序在内部分发给许多用户,并且TNSNAMES
在与Windows计算机上没有管理员特权的用户打交道时,对文件进行更改并不理想。此外,当我使用服务名称时,我完全不需要触摸此文件,而是希望它保持这种状态。
con_str = "myuser/mypass@oracle.sub.example.com:1521/ora1"
cx_Oracle.connect(con_str)
DatabaseError: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
这返回类似
然后可以用来cx_Oracle.connect()
连接数据库:
我有一个看起来像这样的连接字符串
ora1
我的数据库的SID在哪里。在SQL Developer中使用此信息可以正常工作,这意味着我可以毫无问题地进行连接和查询。
但是,如果我尝试使用此字符串连接到Oracle,它将失败。
但是,如果连接ora1
是服务名称,则此连接字符串格式有效。
我看过其他问题,似乎与我的问题相反(它可以与SID一起使用,但不能与服务名一起使用)
使用cx_Oracle
,SID
而不使用服务名称连接到Oracle的正确方法是什么?我如何做到这一点而无需调整TNSNAMES.ORA
文件?我的应用程序在内部分发给许多用户,并且TNSNAMES
在与Windows计算机上没有管理员特权的用户打交道时,对文件进行更改并不理想。此外,当我使用服务名称时,我完全不需要触摸此文件,而是希望它保持这种状态。
这返回类似
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle.sub.example.com)(PORT=1521)))(CONNECT_DATA=(SID=ora1)))
@H_419_7@然后可以用来
cx_Oracle.connect()
连接数据库:con = cx_Oracle.connect(user="myuser", password="mypass", dsn=dsnStr) print con.version con.close()
@H_419_7@解决方法
我有一个看起来像这样的连接字符串
con_str = "myuser/mypass@oracle.sub.example.com:1521/ora1"
ora1
我的数据库的SID在哪里。在SQL Developer中使用此信息可以正常工作,这意味着我可以毫无问题地进行连接和查询。但是,如果我尝试使用此字符串连接到Oracle,它将失败。
cx_Oracle.connect(con_str) DatabaseError: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
但是,如果连接
ora1
是服务名称,则此连接字符串格式有效。我看过其他问题,似乎与我的问题相反(它可以与SID一起使用,但不能与服务名一起使用)
使用
cx_Oracle
,SID
而不使用服务名称连接到Oracle的正确方法是什么?我如何做到这一点而无需调整TNSNAMES.ORA
文件?我的应用程序在内部分发给许多用户,并且TNSNAMES
在与Windows计算机上没有管理员特权的用户打交道时,对文件进行更改并不理想。此外,当我使用服务名称时,我完全不需要触摸此文件,而是希望它保持这种状态。
con = cx_Oracle.connect(user="myuser", password="mypass", dsn=dsnStr) print con.version con.close()
@H_419_7@解决方法
我有一个看起来像这样的连接字符串
con_str = "myuser/mypass@oracle.sub.example.com:1521/ora1"
ora1
我的数据库的SID在哪里。在SQL Developer中使用此信息可以正常工作,这意味着我可以毫无问题地进行连接和查询。但是,如果我尝试使用此字符串连接到Oracle,它将失败。
cx_Oracle.connect(con_str) DatabaseError: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
但是,如果连接
ora1
是服务名称,则此连接字符串格式有效。我看过其他问题,似乎与我的问题相反(它可以与SID一起使用,但不能与服务名一起使用)
使用
cx_Oracle
,SID
而不使用服务名称连接到Oracle的正确方法是什么?我如何做到这一点而无需调整TNSNAMES.ORA
文件?我的应用程序在内部分发给许多用户,并且TNSNAMES
在与Windows计算机上没有管理员特权的用户打交道时,对文件进行更改并不理想。此外,当我使用服务名称时,我完全不需要触摸此文件,而是希望它保持这种状态。
con_str = "myuser/mypass@oracle.sub.example.com:1521/ora1"
cx_Oracle.connect(con_str)
DatabaseError: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
然后可以用来cx_Oracle.connect()
连接数据库:
我有一个看起来像这样的连接字符串
ora1
我的数据库的SID在哪里。在SQL Developer中使用此信息可以正常工作,这意味着我可以毫无问题地进行连接和查询。
但是,如果我尝试使用此字符串连接到Oracle,它将失败。
但是,如果连接ora1
是服务名称,则此连接字符串格式有效。
我看过其他问题,似乎与我的问题相反(它可以与SID一起使用,但不能与服务名一起使用)
使用cx_Oracle
,SID
而不使用服务名称连接到Oracle的正确方法是什么?我如何做到这一点而无需调整TNSNAMES.ORA
文件?我的应用程序在内部分发给许多用户,并且TNSNAMES
在与Windows计算机上没有管理员特权的用户打交道时,对文件进行更改并不理想。此外,当我使用服务名称时,我完全不需要触摸此文件,而是希望它保持这种状态。
然后可以用来cx_Oracle.connect()
连接数据库:
con = cx_Oracle.connect(user="myuser", password="mypass", dsn=dsnStr) print con.version con.close()
@H_419_7@解决方法
我有一个看起来像这样的连接字符串
con_str = "myuser/mypass@oracle.sub.example.com:1521/ora1"
ora1
我的数据库的SID在哪里。在SQL Developer中使用此信息可以正常工作,这意味着我可以毫无问题地进行连接和查询。但是,如果我尝试使用此字符串连接到Oracle,它将失败。
cx_Oracle.connect(con_str) DatabaseError: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
但是,如果连接
ora1
是服务名称,则此连接字符串格式有效。我看过其他问题,似乎与我的问题相反(它可以与SID一起使用,但不能与服务名一起使用)
使用
cx_Oracle
,SID
而不使用服务名称连接到Oracle的正确方法是什么?我如何做到这一点而无需调整TNSNAMES.ORA
文件?我的应用程序在内部分发给许多用户,并且TNSNAMES
在与Windows计算机上没有管理员特权的用户打交道时,对文件进行更改并不理想。此外,当我使用服务名称时,我完全不需要触摸此文件,而是希望它保持这种状态。
con_str = "myuser/mypass@oracle.sub.example.com:1521/ora1"
cx_Oracle.connect(con_str)
DatabaseError: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
我有一个看起来像这样的连接字符串
ora1
我的数据库的SID在哪里。在SQL Developer中使用此信息可以正常工作,这意味着我可以毫无问题地进行连接和查询。
但是,如果我尝试使用此字符串连接到Oracle,它将失败。
但是,如果连接ora1
是服务名称,则此连接字符串格式有效。
我看过其他问题,似乎与我的问题相反(它可以与SID一起使用,但不能与服务名一起使用)
使用cx_Oracle
,SID
而不使用服务名称连接到Oracle的正确方法是什么?我如何做到这一点而无需调整TNSNAMES.ORA
文件?我的应用程序在内部分发给许多用户,并且TNSNAMES
在与Windows计算机上没有管理员特权的用户打交道时,对文件进行更改并不理想。此外,当我使用服务名称时,我完全不需要触摸此文件,而是希望它保持这种状态。