>데이터 베이스 >Oracle >Oracle의 12505 오류를 해결하는 방법

Oracle의 12505 오류를 해결하는 방법

WBOY
WBOY원래의
2022-05-25 16:02:4315421검색

12505 "service_name"과 sid가 일치하지 않아 오류가 발생합니다. 해결 방법: 1. "v$instance에서 INSTANCE_NAME 선택"을 사용하여 데이터베이스의 현재 SID를 얻습니다. 2. 얻은 SID를 데이터베이스 프로그램의 연결 문자열에 입력합니다.

Oracle의 12505 오류를 해결하는 방법

이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 11g 버전, Dell G3 컴퓨터.

Oracle에서 12505 오류를 해결하는 방법

12505 프롬프트가 나타나면 sid에 해당하는 인스턴스 라이브러리를 찾을 수 없습니다. 즉, Oracle의 "service_name"이 sid와 일치하지 않습니다.

해결 단계

1. 다음 명령문을 실행합니다.

select INSTANCE_NAME from v$instance;

인스턴스 라이브러리의 sid를 가져옵니다

Oracle의 12505 오류를 해결하는 방법

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.