programing

"ORA-04068: 패키지의 기존 상태가 폐기되었습니다 ORA-04065: 실행되지 않거나, 변경되거나, 저장 프로시저가 삭제되었습니다

skycolor 2023. 10. 4. 21:07
반응형

"ORA-04068: 패키지의 기존 상태가 폐기되었습니다 ORA-04065: 실행되지 않거나, 변경되거나, 저장 프로시저가 삭제되었습니다

프로시저를 실행하려고 할 때 오류가 발생합니다.PROCEDURE_NAME" 절차에 따라"CALLING_PROCEDURE_NAME". 그러나 내 PROCEDURE_NAME이 이미 유효한 상태이며 다른 프로시저에서 성공적으로 사용되고 있습니다.

ORA-04068: existing state of packages has been discarded
ORA-04065: not executed, altered or dropped stored procedure ""PROCEDURE_NAME""
ORA-06508: PL/SQL: could not find program unit being called: ""PROCEDURE_NAME""
ORA-06512: at ""CALLING_PROCEDURE_NAME"", line LINE_NO
ORA-06512: at line 1

그러나 내 PROCEDURE_NAME이 이미 유효한 상태이며 다른 프로시저에서 성공적으로 사용되고 있습니다.

패키지가 현재 호출된 세션은 해당 패키지의 상태를 유지합니다.패키지를 다시 컴파일하면 해당 세션에서 패키지가 다시 호출되는 순간 이 오류가 발생합니다.

  1. DBMS_SESSION을 실행할 수 있습니다.RESET_PACKAGE; 호출을 완료한 PL/SQL 호출 후 메모리, 커서 및 패키지 변수를 해제합니다.

  2. 기존 세션을 모두 닫고 다시 실행할 수 있습니다.

  3. SERIAL_REUSUBLE Packages는 다음을 사용하여 패키지를 만들 수 있습니다.PRAGMA SERIALLY_REUSABLE;진술.패키지가 다음과 같은 경우SERIALLY_REUSABLE, 패키지 상태는 시스템 전역 영역(SGA)의 작은 풀에 있는 작업 영역에 저장됩니다.패키지 상태는 서버 호출 기간 동안만 유지됩니다.

언급URL : https://stackoverflow.com/questions/26646123/ora-04068-existing-state-of-packages-has-been-discarded-ora-04065-not-execute

반응형