我正面臨此錯誤。包裝現有狀態已失效
我有兩個模式實施模式A和架構B
架構B包含在其中的值被插入的表MY_TABLE。
還有
該觸發寫在schemaB的MY_TABLE被調用過程,它存在於模式A.用於在MY_TABLE schemaB對於每一行
CREATE OR REPLACE TRIGGER schemaB.my_trigger
ON schemaA.my_table
FOR EACH ROW
BEGIN
IF INSERTING THEN
schemaA.my_package.my_procedure (:NEW.field_A,NEW.field_B, :NEW.field_C);
END IF;
EXCEPTION
WHEN OTHERS THEN
Insert into my_log(DBMS_UTILITY.format_error_stack,sysdate);
END my_trigger;
/ AFTER INSERT
寫入
然而,當一個triggger my_trigger觸發器被解僱,我在我的日誌
ERROR: ORA-04061: existing state of package "schemaA.my_package" has been invalidated
ORA-04065: not executed, altered or dropped package "schemaA.my_package"
ORA-06508: PL/SQL: could not find program unit being called: "schemaA.my_package"
ORA-06512: at "schemaB.my_trigger", line 17 10/1/2015 6:38:07 PM
而且在schemaA的過程聲明爲PRAGMA_AUTONOMOUS_TRANSA提示以下錯誤: CTION
這是一些補助金問題,因爲我檢查了所有的補助金已經給出,我已經檢查了這兩個觸發器和程序 的依賴關係,並且全部似乎都有效。你能幫忙嗎?
我一直在使用語用serially_reusable在調用包,但仍然給了我同樣的錯誤
非常感謝
[「ORA-04068:包的現有狀態已被丟棄ORA-04065:未執行,更改或刪除存儲過程](http:// stackoverflow。com/questions/26646123/ora-04068-existing-state-of-packages-has-been-discarded-ora-04065-not-execute) –
試圖通過使調用包爲串行可重置但仍然是相同的錯誤。 – Dawn
可能你請附上'schemaA.my_package' ddl嗎? –