3

此示例代码用于在 Python 中连接到 Oracle SID。

import jpype
import jaydebeapi
jHome = jpype.getDefaultJVMPath()
jpype.startJVM(jHome, '-Djava.class.path=/path/to/ojdbc6.jar')
conn = jaydebeapi.connect('oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:user/password@DB_HOST_IP:1521:DB_NAME')

我们如何连接到 Oracle 服务名称?

4

2 回答 2

4

关于您的连接字符串,您可以使用TNS语法(请继续阅读,此处),而不是host:port:sid您现在使用的语法。在这种情况下,您将在SERVICE_NAMEinside进行描述CONNECT_DATA,如下所示:

   jaydebeapi.connect('oracle.jdbc.driver.OracleDriver','[MYUSER]/[MYPASS]@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=[MYHOST])(PORT=1521))(CONNECT_DATA=(SERVER=dedicated) (SERVICE_NAME=[MYSERVICENAME])))')

顺便说一句 - 您也可以使用cx_Oracle连接到 oracle - 没有java麻烦。(只是一个建议)

于 2016-09-19T09:00:38.523 回答
4

这种方式应该有效

  conn = jaydebeapi.connect('oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:user/password@//DB_HOST_IP:1521/DB_NAME')
于 2016-09-22T08:10:35.660 回答