12505 "service_name"과 sid가 일치하지 않아 오류가 발생합니다. 해결 방법: 1. "v$instance에서 INSTANCE_NAME 선택"을 사용하여 데이터베이스의 현재 SID를 얻습니다. 2. 얻은 SID를 데이터베이스 프로그램의 연결 문자열에 입력합니다.
이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 11g 버전, Dell G3 컴퓨터.
12505 프롬프트가 나타나면 sid에 해당하는 인스턴스 라이브러리를 찾을 수 없습니다. 즉, Oracle의 "service_name"이 sid와 일치하지 않습니다.
해결 단계
1. 다음 명령문을 실행합니다.
select INSTANCE_NAME from v$instance;
인스턴스 라이브러리의 sid를 가져옵니다
2. 그런 다음 해당 sid를 사용하여 시스템에 로그인합니다
- 12505:
이전에는 PL/SQL DEVELOPER 및 SQLPLUS를 사용하여 데이터베이스에 로그인하는 데 문제가 없었습니다. 그러나 애플리케이션이 JDBC를 통해 Oracle에 연결될 때 성공적으로 연결되지 않고 리스너가 발생하지 않습니다. 현재 연결 설명자에 제공된 SID를 알고 있습니다.... ..
검색 결과 Oracle의 service_name과 sid_name이 일치하지 않으며 PL/SQL DEVELOPER와 SQLPLUS는 service_name을 사용하여 연결하는 반면 응용 프로그램은 sid_name에 따라 연결하므로 PL/SQL DEVELOPER와 SQLPLUS는 연결은 가능하지만 응용 프로그램은 연결할 수 없는 것으로 나타났습니다. 문제.
문제 설명:
오늘 jdbc를 사용하여 Oracle 10.2.0.1.0 데이터베이스에 연결할 때 다음 오류가 발생했습니다.
Connection refused(DESCRIPTION=(TMP=)(VSNNUM=153093120)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
데이터베이스는 plsql을 통해 정상적으로 연결될 수 있거나, sqlplus를 통해 데이터베이스가 연결될 수 있습니다
After 관련 디버깅 및 검색 결과 문제의 원인은 다음과 같습니다.
jdbc가 데이터베이스에 연결할 때 데이터베이스의 services_name 대신 데이터베이스의 sid_name을 사용해야 합니다.
plsql을 사용하여 연결하는 경우 데이터베이스에는 데이터베이스의 services_name만 필요하므로 연결 문자열 services_name을 sid_name
으로 수정하세요. 권장 튜토리얼: "Oracle Video Tutorial"
위 내용은 Oracle의 12505 오류를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!