tnsnames.ora (전체 연결 문자열 및 EZCONNECT)를 우회하기 위해 연결 문자열을 사용하려고하면 데이터베이스에 연결하려고 할 때 다음 오류가 반환됩니다.
pyodbc.Error : ( 'HY00', '[HY00] [Oracle] [ODBC] [Ora] ORA-12560 : TNS : 프로토콜 어댑터 오류 \ n (12560) (SQLDriverConnect); [Oracle] [ODBC] [Ora] ORA -12560 : TNS : 프로토콜 어댑터 오류 \ n (12560) ')
https://www.connectionstrings.com/oracle/ 에서 다음 연결 문자열을 사용해 보았습니다 .
Driver={Oracle in OraClient11g_home1}; Data Source=uid/pwd@//host:port/service_name;
Driver={Oracle in OraClient11g_home1};
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host)(PORT=port)))
(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=service_name)));
User Id=uid;Password=pwd;'
sqlplus 및 EZCONNECT를 사용하여 데이터베이스에 연결할 수 있습니다.
PS: C:\>sqlplus uid/pwd@//host:port/service_name
SQL*PLUS: Release 11.2.0.1.0 Production on Thu Aug 30 11:56:22 2018
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production
SQL>
다른 드라이버를 사용하면 다른 오류가 반환되기 때문에 드라이버 문제가 아닌 것 같습니다.
pyodbc.InterfaceError : ( 'IM002', '[IM002] [Microsoft] [ODBC 드라이버 관리자] 데이터 원본 이름을 찾을 수없고 기본 드라이버가 지정되지 않았습니다 (0) (SQLDriverConnect)').
연결 문자열이 sqlplus에서는 작동하지만 ODBC에서는 작동하지 않는 이유는 무엇입니까?
Oracle ODBC 드라이버를 사용할 때 연결 문자열은 다음과 같아야합니다.
Driver={Oracle in OraClient11g_home1};
DBQ={(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host)(PORT=port)))
(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=service_name)))};
Uid=uid;Pwd=pwd;
OraClient11g_home1 연결 문자열에서 Oracle을 참조하십시오.
을 위해 사용되지 않는 마이크로 소프트 드라이버가 될 것이다
Driver={Microsoft ODBC for Oracle};
Server={(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host)(PORT=port)))
(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=service_name)))};
Uid=uid;Pwd=pwd;
Oracle 연결 문자열 은 Microsoft ODBC를 참조하십시오.
메모하시기 바랍니다 오라클 용 Microsoft ODBC는 32 비트 사용할 수 있습니다
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다