Python > Соединение с JDBC для имени службы Oracle (jaydebeapi)

Этот пример кода используется для подключения в 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 Service Name?

2 ответа

Этот способ должен работать

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

Что касается строки подключения, вы можете использовать TNS синтаксис ( читайте здесь), в отличие от host:port:sid синтаксис вы используете сейчас. В этом случае вы бы описали SERVICE_NAME внутри 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 для подключения к оракулу - нет java хлопот. (просто предложение)

Другие вопросы по тегам