आपका वर्तमान तर्क इसके अंदर प्रत्येक INSERT पर स्वयं ट्रिगर को सक्रिय करता रहता है!
तो, शायद आप एक INSTEAD OF
की तलाश कर रहे हैं एक दृश्य का उपयोग करके ट्रिगर करें
create or replace TRIGGER trg_INSERTKEYWORDS
INSTEAD OF INSERT ON Keyword
यह ऐसा है, देखने पर वास्तविक इंसर्ट के बजाय, जो मैं अपने ट्रिगर लॉजिक में बताता हूं वह करें!
देखें:
CREATE VIEW MYVIEW AS
SELECT
LISTAGG(keyword,',') WITHIN GROUP (ORDER BY seq) as keyword,
some_code
FROM Keyword
GROUP BY some_code;
ट्रिगर:
create or replace TRIGGER trg_INSERTKEYWORDS
INSTEAD OF INSERT ON MYVIEW
FOR EACH ROW
DECLARE
varKeyWordsStr VARCHAR2 (255) := 'Hello,How,are,you,keeping';
/* Isn't it keyWord from the inserted value ?? */
BEGIN
FOR k IN (SELECT REGEXP_SUBSTR (varKeyWordsStr,'[^,]+',1,LEVEL) keyWord
FROM DUAL
CONNECT BY REGEXP_SUBSTR (varKeyWordsStr,'[^,]+',1,LEVEL)IS NOT NULL)
LOOP
INSERT INTO KEYWORD VALUES(seqKeyWord.NEXTVAL,k.keyWord,1000);
END LOOP;
END;