IT 관련,,/데이터베이스(sql)

[SQL/Oracle]ORA-00942: 테이블 또는 뷰가 존재하지 않습니다

IT깡패's 2018. 9. 5. 20:07
728x90
반응형
SMALL


ORA-00942: 테이블 또는 뷰가 존재하지 않습니다.


오라클로 작업을 하다 보면 이런 오류가 가끔 뜨게 되는데요~

1. 정말로 테이블이나 시퀀스가 없을 경우도 있겠지만

2, 보통은 권한 때문에 생기는 문제라고 생각하시면 됩니다.


원인


보통은 시스템권한이 있는 아이디를 갖고 웹에서 접근할 수 있도록 허용하지 않기 때문에 새로 생성한 사용자 아이디로 프로젝트를 하게 될텐데요..

이럴 경우에 테이블생성 권한이 없다면, 다른 테이블에 접근하도록 (테이블 권한이 있는)USER.TABLE 이라고 설정해주어야 합니다.

아예 그 테이블에 CRUD 권한이 없는 경우에도 그렇습니다. 그렇기 때문에 그냥 습관처럼 SELECT * FROM TABLE처럼 쓰게 됨녀 그 테이블을 찾지 못하게

되어 저런 류의 오류가 발생하게 됩니다.


해결방법


1. 정말 테이블이나 시퀀스가 없는 경우를 확인하기 위해서는 먼저 오타가 난 부분이 없는 지 확인한 후,,

2. 권한을 줄 수 있는 USER로 접속해서 웹에서 접근해야 하는 USER에게 권한을 줄 수 있습니다.


GRANT 
SELECT, INSERT, UPDATE, DELETE
ON 
테이블 권한이 있는 USER.테이블명
TO
권한을 줄 USER


3. 일일이 USER.TABLE로 쓰지 않기 위해 synonym을 줍니다.


CREATE PUBLIC SYNONYM
테이블명
FOR
테이블 권한이 있는USER.테이블명


4. 이렇게 권한을 모두 줬는데도 계속 이러한 오류가 뜬다면, 오라클을 연결하는 것을 설정하는 부분에서 USER ID가 오타난 것이 아닌 지 확인해보면 됩니다.

property쪽을 특히 확인~~


이 오류는 오라클에서 권한을 줄 때 많이 볼 수 있으며, 서브쿼리를 사용한 테이블에서 자주 볼수 있습니다.

잘 살펴뒀다가 sql오류가 났을 때, 당황하지 않고 알맞게 수정해주면 됩니다.

웹개발자로서 자바나 오라클 디버깅부분은 필수적이므로 잘 알아둡시다~~

728x90
반응형
LIST