0
我在表上使用BEFORE INSERT或UPDATE觸發器,並且想要查詢觸發器中的同一個表。 觸發器是FOR EACH ROW。帶觸發器的變異表?
編譯時,觸發器順利編譯,沒有錯誤和警告,處於有效狀態。 但觸發器不執行我查詢此表和之後的代碼。
所有的代碼都在檢查客戶是否已經使用了debitnote#(存儲在Attribute1中)。如果它已經使用然後拋出錯誤,否則繼續。
我無法做到這一點。它是Mutuatuing表錯誤?。任何幫助將不勝感激。
CREATE OR REPLACE TRIGGER APPS_APPL.XX_OZF_DBTNUM_INS_TRG
BEFORE INSERT OR UPDATE
ON OZF_CLAIM_LINES_ALL
FOR EACH ROW
WHEN (NEW.org_id = 43)
DECLARE
ln_cust_account_id NUMBER;
ln_debit_cust_count NUMBER;
le_claim_invalid EXCEPTION;
lv_attribute1 VARCHAR2 (100);
BEGIN
--Get Customer account Id for this new ClaimID
SELECT cust_account_id
INTO ln_cust_account_id
FROM ozf_claims_all
WHERE claim_id = :NEW.CLAIM_ID;
--Get Count of Records That this customer has same debitNote#
SELECT COUNT (ocla.claim_line_id)
INTO ln_debit_cust_count
FROM ozf_claims_all oca, ozf_claim_lines_all ocla
WHERE oca.claim_id = ocla.claim_id
AND oca.cust_account_id = ln_cust_account_id
AND ocla.debitnum = :NEW.debit_number;
--If count is more then 0 then throw error else proceed
IF ln_debit_cust_count > 0
THEN
RAISE le_claim_invalid;
END IF;
EXCEPTION
WHEN le_claim_invalid
THEN
fnd_message.set_name ('OZF', 'XX_OZF_DEBITNUM_VALIDATION');
fnd_msg_pub.ADD;
RAISE fnd_api.g_exc_error;
END;
/
避免使用'當其他人那麼NULL;'那麼你會看到錯誤。 –
'當其他人那麼NULL'本身就是一個錯誤。見[當其他人那麼NULL - 一個錯誤](http://lalitkumarb.wordpres.com/2014/05/02/when-others-then-null-a-bug/) –
謝謝,我將刪除該部分的代碼。但仍然需要你的幫助來解決這個錯誤。 – Jaggu