CREATE TRIGGER "CPI"."TRGPRODOFFRPRICE"
AFTER UPDATE or INSERT ON CPI_LOADER_EXEMPTIONS
FOR EACH ROW
DECLARE
table_name varchar(32);
BEGIN
if substr(:new.SID_ID,1,3) = 'POP' then
table_name := 'PROD_OFFR_PRICE_CHARGE';
else
table_name := 'PROD_OFFR_PRICE_ALTERATION';
end if;
execute immediate 'UPDATE :1 set CPI_EXEMPTION=:2 WHERE SID_ID=:3' using table_name, :new.FLAG, :new.SID_ID;
END;
基於我編輯到這個表單的評論,這看起來更好,但是當試圖插入值到啓動觸發器的表我得到錯誤「無效的表名」,任何想法是什麼造成的這個 ?錯誤的選項卡var聲明可能?oracle,sql,trigger
一如既往地開始簡單...得到一個簡單的觸發器工作正常然後小步驟前進到上面列出的複雜目標...好處是你得到的任何錯誤很容易被識別爲最後一個改變...嘗試上面的錯誤定義可能指向太多的原因 –
這看起來「確定」,但你想要完全動態的sql - 只是將表作爲變量將不會工作 – Hogan
[我應該在標題中使用標籤?](http:// stackoverflow .com/help/tagging):「由於標籤出現在問題的下面,標籤由搜索引擎和您的問題的內容編入索引,您可以相信其他人可以根據他們關注的標籤找到您的問題,或者搜索」。我很難編輯您的問題標題(您真正的機會將您的問題「推銷」給潛在的回答者),因爲它完全是*標籤。請將您的標題編輯爲更多*描述*。 –