有人可以幫助我更正下面的觸發器嗎?我被分配了這個問題,但我的技術技能是有限的。ORA-04091創建或替換觸發xxx在插入更新xxx之前
我的腳本打下面的錯誤(ORA 4091):
處理標準訂單號:27179
................... ...................
更新訂單狀態..
完成審批處理。
DIST ID 611294gl量10000.88 bill_del_amount 0 l_amount 10000.88
一些異常出現** ORA-04091:表PO.PO_DISTRIBUTIONS_ALL被突變,
觸發/功能可能無法看到它**
ORA-06512:在 「APPS.XXAET_PO_DELIVER_TO_TRG」,
線22
ORA-01403:無數據發現
ORA-04088:觸發
「APPS.XXAET_PO_DELIVER
PL/SQL過程已成功完成的執行期間的錯誤。
SQL>
我設法找到在客戶機定製的觸發,但是研究後我無法針點什麼錯與SQL。請幫忙!
CREATE OR REPLACE TRIGGER apps.xxaet_po_deliver_to_trg
BEFORE INSERT OR UPDATE ON po_distributions_all
FOR EACH ROW
DECLARE
l_emp_name VARCHAR2 (300);
l_sqlcode VARCHAR (30) := SQLCODE;
l_sqlerrm VARCHAR (400) := SUBSTR (SQLERRM, 1, 399);
x_profile_value VARCHAR (10) ;
BEGIN
x_profile_value := fnd_profile.value('ORG_ID');
Select Ship_To_Location_ID
INTO :NEW.Deliver_To_Location_Id
from PO_LINE_LOCATIONS_ALL
WHERE line_location_id = :NEW.line_location_id
AND ORG_ID = x_profile_value
;
EXCEPTION
WHEN OTHERS
THEN
NULL;
UPDATE PO_DISTRIBUTIONS_ALL SET Deliver_To_Location_Id = :NEW.Deliver_To_Location_Id
WHERE line_location_id = :NEW.line_location_id;
END;
/
非常感謝! Kenneth, 。
您的意思是隻有在SELECT語句失敗時才執行UPDATE語句? – APC 2009-10-23 04:58:27