आप प्रत्येक पंक्ति का परीक्षण करने के लिए स्ट्रिंग मिलान कर सकते हैं:
create or replace trigger "ORDER_PARTS_T1"
BEFORE
insert or update on "ORDER_TABLE"
for each row
begin
update PARTS_TABLE p
set p.ASSIGNED_ORDER_NUMBER = :new.ORDER_NUMBER
where instr(':' || :new.ORDER_PARTS_LIST || ':'
,':' || p.PART_NUMBER || ':') > 0;
end;
तो उदाहरण के लिए, यदि ORDER_PARTS_LIST '123:456:789'
है उदाहरण के लिए, INSTR आईडी 123, 456 और 789 के लिए मिलान ढूंढेगा, लेकिन 124, 45 या 8 नहीं।
जब किसी ऑर्डर से पुर्जे हटा दिए जाते हैं तो आपको NULL
. के लिए एक अलग ट्रिगर की आवश्यकता होगी PARTS_TABLE
. में उपयुक्त फ़ील्ड :
create or replace trigger "ORDER_PARTS_T1"
BEFORE
update on "ORDER_TABLE"
for each row
begin
update PARTS_TABLE p
set p.ASSIGNED_ORDER_NUMBER = NULL
where instr(':' || :new.ORDER_PARTS_LIST || ':'
,':' || p.PART_NUMBER || ':') = 0
and instr(':' || :old.ORDER_PARTS_LIST || ':'
,':' || p.PART_NUMBER || ':') > 0;
end;