2016-09-19 3 views
1

이 샘플 코드는 Python과 Oracle SID를 연결하는 데 사용됩니다.Python> JDBC와 Oracle 서비스 이름 연결 (jaydebeapi)

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/[email protected]_HOST_IP:1521:DB_NAME') 

어떻게 Oracle 서비스 이름에 연결할 수 있습니까? 현재 사용중인 host:port:sid 구문에 반대

답변

1

연결 문자열에 대해서는, 당신은 TNS 구문 (read on, here), 를 사용할 수 있습니다. 다음과 같은 경우에 당신은 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을 사용할 수 있습니다 - 더 java 번거 로움을. (방금 제안)

0

이 방법은

conn = jaydebeapi.connect('oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:user/[email protected]//DB_HOST_IP:1521/DB_NAME') 
작동합니다