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
хлопот. (просто предложение)