2013-06-05 2 views
0

ibatis xml 파일에서 oracle plsql 프로 시저를 호출하는 Java 웹 응용 프로그램이 있습니다. 이 프로시 저는 테이블의 감사 정보를 8 처합니다. 그래서 여러 사용자가이 저장 프로 시저를 수정하면 다음과 같은 오류가 발생합니다.ORA-06508 : PL/SQL : 호출되는 프로그램 유닛을 찾을 수 없습니다 : "PUBLIC.PLITBLM"

--- example.xml에 오류가 발생했습니다.
--- 매개 변수 맵을 적용하는 동안 오류가 발생했습니다.
--- example.params를 확인하십시오.
문을 확인하십시오 (업데이트 절차가 실패했습니다).
원인 : java.sql.SQLException의 : ORA-04068 : 실행되지, 변경 또는 절차 "PUBLIC.PLITBLM"를 저장 떨어졌다 ORA-06508를 : 패키지의 기존 상태
ORA-04065 폐기 된 PL/SQL을 : 수 못 했습 프로그램 단위가 호출되고 : "PUBLIC.PLITBLM"ORA-06512 : "AUDIT"에서, 라인 279
ORA-06512 : 줄에 1

전화


iBATIS를에서





{전화 AUDIT (?,?,?,?,?,?, '발')} 자바 웹 응용 프로그램에서

전화

지도 _temp = new HashMap (params);
_temp.put ("OPERATION_TYPE", operation);
sqlMapper.insert ("call_proc_audit", _ temp);
false를 반환합니다.

plsql 프로시 저는 삽입, 갱신 및 삭제시 즉시 실행됩니다.

보안상의 이유로 코드를 삭제했습니다.

+0

코드 조각을 게시합니다 (이 절차를 호출하는 곳). –

+0

@David : 코드를 게시했습니다. –

+0

아니요. 오류 메시지에서 언급 한 FRDWEB.AUDIT 절차는 어디에 있습니까? FRDWEB.WF_CMD_HIST_VER_AUDIT_ENTRY을 (를) 게시했습니다. –

답변

1

PLITBLM 패키지는 표준 Oracle 빌드의 일부입니다. 분명히 인덱스 구성 테이블을 처리합니다. 그것은 우리가 직접 호출해야 할 필요가 없기 때문에 상세하게 문서화되지 않았습니다. Find out more. 일부 표준 Oracle 기능에는 종속성이있을 수 있습니다.

귀하의 프로그램이 예외를 던지는 이유에 관해서는 그것은 약간의 외면입니다. 패키지는 Oracle 홈 $ORACLE_HOME/rdbms/admin/plitblm.sql에있는 스크립트로 작성됩니다. 그러나 자체적으로 실행할 수는 없으며 catproc,sql의 일부로 만 실행할 수 있습니다. 이것은 데이터 딕셔너리 및 기타 사항을 빌드하고 Oracle 설치 프로세스의 일부로 실행됩니다.

아마도 설치가 잘못 되었습니까?

흥미롭게도 실제 PLITBLM 패키지는 SYS 소유이지만 오류 메시지는 PUBLIC을 참조하므로 누락 된 공용 동의어가 될 수 있습니다. 그러나 catproc,sql이 성공적으로 실행되지 않은 경우 다른 숨어있는 문제가있을 수 있습니다.데이터베이스를 확인하려면 DBA가 필요하며, 필요하다면 catproc,sql을 다시 실행하십시오.

+0

APC : 대단히 감사합니다. DBA와 이야기하겠습니다. –

+0

plsql varray에서이 오류가 발생합니다 .FIRST; –