본사에서 받은 dump file import 후 Report 화면에 데이터가 하나도 나오지 않아 확인해 보니 reporting 계정의 function / procedure들이 모두 invalid 상태이다.

EnterpriseManager에서 해당 function 을 일일이 compile을 시켜도 모두

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

이런 오류만 떨어 진다..

헌데 해당 Table을 SQLPLUS를 통해 확인해 보면 정상적으로 Access 가능하다.

( 계정 별로 Table을 생성한 후 서로 다른 계정 테이블을 Synonym 으로 연결해서 쓰는 구조.. )

뭔가 본사에서 export를 잘 못 하거나 아님 내가 import를 잘 못하거나 두개 중 하나일텐데...

http://database.sarang.net/?inc=read&aid=30895&criteria=oracle&subcrit=&id=&limit=20&keyword=function+ORA-00942&page=1

이 글을 보다 보니 답이 나온다.

import하다가 문제가 좀 생겨서

primary 계정이랑 reporting 계정을 삭제하고 다시 생성했는데

primary 계정 import 시 grant 관련 처리가 끝난 후에 reporting 계정이 생성되어

grant 관련 option이 적용되지 않아서 생긴 문제 였다.

결국 두개 계정 다시 drop 후 ( 물론 primary만 drop 해도 되기는 했지만 )

다시 하나씩 계정 생성 후 import하니 잘 된다.

결국 결론은 SQLPLUS에서 접속이 되는 거랑

function 내에서 해당 테이블을 참조하는 권한은 조금씩 다르다는 결론을 내릴 수 있을 것 같다.


'개발자세상 > Database관련' 카테고리의 다른 글

ORA-30557  (0) 2009.12.09
Oracle Table Column Rename  (0) 2009.10.28
impdp / expdp  (0) 2009.06.19
MYSQL에서 copy_t , copy_ymd 테이블 만들기  (0) 2009.03.13
MYSQL에서 Rownum 사용하기  (0) 2009.03.13
Posted by headiron
,