【问题标题】:Python > Connection with JDBC to Oracle service name (jaydebeapi)Python > 使用 JDBC 连接到 Oracle 服务名称 (jaydebeapi)
【发布时间】:2017-01-26 20:38:56
【问题描述】:

此示例代码用于在 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 服务名称?

【问题讨论】:

    标签: java python oracle jdbc jaydebeapi


    【解决方案1】:

    关于您的连接字符串,您可以使用TNS 语法(read on, here), 与您现在使用的 host:port:sid 语法相反。 在这种情况下,您将在CONNECT_DATA 中描述SERVICE_NAME,如下所示:

       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 麻烦。 (只是一个建议)

    【讨论】:

      【解决方案2】:

      这种方式应该可行

        conn = jaydebeapi.connect('oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:user/password@//DB_HOST_IP:1521/DB_NAME')
      

      【讨论】:

        猜你喜欢
        • 2019-11-11
        • 2019-12-07
        • 2020-06-29
        • 1970-01-01
        • 2014-10-23
        • 2018-10-01
        • 2013-10-15
        • 2019-08-21
        • 2014-11-25
        相关资源
        最近更新 更多