我必須在Oracle數據庫上創建這個時髦的ON INSERT
觸發器。在Oracle表上創建ON INSERT觸發器
我已經給出了這個舊的項目,缺少部分源代碼,所以現在我只能使用數據庫工作一些魔術。觸發器應該更新插入時的行,並從其他視圖中刪除值。
下面是一些由樣本數據:
我有這個表,讓我們把它叫做TABLE1。 然後我有這個看法,可以叫它VIEW2。 鑑於可能存在多個具有相同CODE的記錄,但它們是完全重複的,所以任何行都是有效的。這些副本只有少數幾個,但客戶還沒有過濾掉它們。
- TABLE1和VIEW1有以下字段
(CODE, PARTNER, COUNTRY)
。 - TABLE1也有字段
COMMENT
。
所有字段都是varchar類型。
在該領域中是COMMENT
varchar
類型的並具有添加到其價值,像這樣一個後綴: 「-XXX-CODE」,例如,「一些評論-XXX-123」。
這裏是我的scenarion:
這被插入TABLE1:
**CODE;PARTNER;COUNTRY;COMMENT**
- 123;TEST;USA;SOME COMMENT
- 145;TEST2;GB;SOME COMMENT
- NULL;NULL;NULL;SOME COMMENT-XXX-154
這是觸發應該踢 - IF場CODE IS NULL,觸發shuld fire和 - 解析出基於-XXX-前綴的代碼(在此示例中取值154) - 在上查看選擇查看(select co德,尋找合作伙伴,從VIEW1國家,代碼= 154 - 如果找到記錄它應該code, partner and country
值
好更新TABLE1,我希望情況是清楚的。 由於我沒有經驗與甲骨文解決我的問題,非常感謝。
感謝。
該字段代碼是varchar類型。感謝這個例子。然而,我發現難以理解基於「-XXX-CODE」示例 – no9 2013-03-20 09:15:23
的示例中的SUBSTR/INSTR函數,我已經測試了這些函數,現在它已經可以理解了。 – no9 2013-03-20 09:22:45
我收到編譯錯誤:在PLS-00201:標識符'NEW.COMMENT'必須聲明。 – no9 2013-03-21 08:09:41