ORA-00942: 테이블 또는 뷰가 존재하지 않습니다 해결하기 (ORA-00942: table or view does not exist)

ORA-00942: 테이블 또는 뷰가 존재하지 않습니다 오류는 다음과 같은 원인으로 발생합니다.

  • 실제로 테이블, 뷰가 존재하지 않는 경우
  • 테이블, 뷰가 존재하지만 권한 문제로 조회가 불가능한 경우

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

ORA-00942: 테이블 또는 뷰가 존재하지 않습니다 오류는 보통 권한 문제로 발생하는 경우가 높습니다. 테이블, 뷰 존재 여부를 착각하는 경우는 그리 많지 않을 것이기 때문입니다. 물론 테이블, 뷰가 실제로 존재하지 않는 경우도 있을 것입니다. 또는 오타의 가능성도 생각해 볼 수 있습니다.

예제 자료는 V$PARAMETER 파라미터 뷰에 대한 접근 권한이 없어서 뷰가 존재하지 않는다는 오류가 발생합니다.

Select VALUE
FROM V$PARAMETER
WHERE UPPER(NAME) = 'DB_BLOCK_SIZE'

Error occurred: [942] (ORA-00942: table or view does not exist)

---------------------------------------------------------------

Select VALUE
FROM V$PARAMETER
WHERE UPPER(NAME) = 'UNDO_TABLESPACE'

Error occurred: [942] (ORA-00942: table or view does not exist)

---------------------------------------------------------------

select null
from 
    SYS.DBA_DATA_FILES A,
    SYS.DBA_FREE_SPACE B,
    SYS.V_$TEMP_SPACE_HEADER C,
    SYS.V_$TEMP_EXTENT_POOL D,
    SYS.DBA_TEMP_FILES E
where 0=1

Error occurred: [942] (ORA-00942: table or view does not exist)

SELECT privilege on v$parameter is required. Unable to determine db_block_size. 와 같은 뷰 권한을 처리하기 위해 다음과 같은 명령어를 진행합니다.

GRANT SELECT ON V_$PARAMETER TO username;

--Grant succeeded.

참고로 V$PARAMETER가 아니라 V_$PARAMETER 뷰에 관한 권한을 주어야 합니다. V$PARAMETER는 시노님입니다.

CREATE OR REPLACE PUBLIC SYNONYM V$PARAMETER FOR SYS.V_$PARAMETER;

권한 문제가 아니라 테이블 또는 뷰가 정말 존재하지 않는 경우에는 테이블 생성 스크립트를 진행하면 될 것입니다.

ORA-00942: table or view does not exist

Create View 명령어를 통해 뷰를 생성할 때, ORA-00942: 테이블 또는 뷰가 존재하지 않습니다 오류가 발생하는 경우가 있습니다. 참고로 해당 오류가 영어로 표시가 될 때에는 ORA-00942: table or view does not exist When Create View 라고 안내를 해드립니다.

이번 주제는 뷰를 생성할 때 Line 0, Column 0에서 테이블 또는 뷰가 존재하지 않다고 하는 경우에 대한 안내입니다. 해당 상황에서 검토해야 할 부분은 패키지에 대한 실행권한이 없을 가능성이 있다는 것입니다. 예시를 보며 진행해 보겠습니다.

다음과 같은 오류가 발생하였습니다.

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

Invalid 상태 입니다.

ORA-00942: table or view does not exist When Create View

훑어보니 함수(function) 실행에 대한 권한이 없습니다.

GRANT EXECUTE ON Grantor.PackageName TO Grantee

EXECUTE 권한 외에도 필요한 것 있으면 부여하시면 된답니다.

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

컴파일을 완료했습니다.

댓글