주제 : FULL or SCHEMA Export fails with ORA-6553 PLS-561

 

1. 자바가 설치되어 있는지 확인한다.

SQL> SELECT count(*) FROM dba_objects WHERE object_type LIKE 'JAVA%';

-> 4,000건 이상 조회되어야 한다.

만약 자바가 필요없다면 $ORACLE_HOME/javavm/install/rmjvm.sql 스크립트를 이용하여 삭제하자.

단, 오라클 8.1.6의 rmjvm.sql은 문제가 있으므로 (BUG:1179670) 내용을 다음과 같이 수정한 후 스크립트를 실행해야 한다.

(변경전) call rmjvm.run(true)
(변경후) execute rmjvm.run(true)

그리고 나서 SYS 계정으로 접속 후 다음을 실행한다.

SQL> drop package dbms_java;
SQL> drop public synonym dbms_java;

 

2. SYS 계정의 문제일 가능성이 있다.

SQL> SELECT dbms_java.longname(name) FROM obj$ WHERE type# = 29 and status != 1;

-> 정상 상태라면 0건이어야 하는데, 만약 문제가 있다면 ORA-6553 PLS-561이 발생할 것이다.

 

Export tests whether the Synonym 'DBMS_JAVA' is defined.

If it is defined, export assumes java has been installed and it uses dbms_java.longname to get the long version of synonym names.

Otherwise, it assumes it can't use dbms_java and just takes the name out of sys.syn$.

It looks like DBMS_JAVA was defined but initjvm didn't run (or failed somewhere).