[에러해결]ORA-12505 tns:listener does not currently know of sid given in connect descriptor

2023. 3. 31. 21:11에러해결

해결에 거의 반나절 이상을 걸리게 한 에러다.
다양한 게시글을 보며 이것저것 해보다가


1.아래와같이  listener 와 tnsnames 파일을 수정하고  2.SQL developer를 설치하고  3.컴퓨터를 재부팅한 뒤 에러가 해결되었다! SQL developer는 다른 글을 통해 충분히 설치할 수 있다. 따라서 여기에는 내가 수정한 부분만 작성하면 될듯하다.

파일 수정 : SQL developer에 연결된 oracle 폴더 뒤를 따라가다보면 (내컴퓨터에 oracle이 설치된 폴더가 여러개일 경우. 애꿎은 다른 oracle폴더가 아닌, 아래 스크린샷에 있는 oracle폴더 안의 파일을 수정해야할 것이다.)

 

아래와 같이 listener 와 tnsnames 파일이 있다. 이 두 파일을 메모장에서 열어서 수정해야 한다. 

 


 나의 경우 cmd에서 sqlplus로 관리자(system) 계정으로 접속 후 select instance from v$thread; 명령을 실행했을 때 sid가 XE로 나왔기에 listener 파일에 아래와같이 드래그한 부분을 추가하였고, 

 


24번라인의 HOST = localhost 로 수정해주었다. 이 localhost 부분 수정은 필수인지는 모르겠으나
java파일에서 db의 url부분을 String url = "jdbc:oracle:thin:@localhost:1521:xe"; 로 해줬었기에 일치시켜주었다.

 

그리고 tnsnames 파일에서도 아래 드래그한 부분을 추가해 주었다. 

 

 

아래는 성낙현의 JSP 자바 웹 프로그래밍 책을 참고해서 작성한 코드이다. 나는 아래 코드에 맞춰서 위의 과정을 거쳐 에러를 해결한 것이기에 참고차 아래 코드도 공유한다. :)