sql >> Databáze >  >> RDS >> Oracle

Oracle APEX Database Trigger - Problémy s odkazováním na sloupce databáze

Pro testování každého řádku můžete provést porovnávání řetězců:

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;

Pokud je tedy například ORDER_PARTS_LIST '123:456:789' , INSTR najde shody pro ID 123, 456 a 789, ale ne například 124, 45 nebo 8.

Když jsou díly odebrány z objednávky, budete potřebovat jiný spouštěč než NULL příslušná pole v 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;


  1. Získávání dat pomocí znakové sady UTF-8 ze serveru MSSQL pomocí rozšíření PHP FreeTDS

  2. Odeslání +-200 e-mailů pomocí funkce php mail() ve smyčce

  3. Jak rychle vybrat data z Oracle

  4. Je Intel odsouzen k zániku v prostoru CPU serveru?