Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle APEX Database Trigger - Masalah dengan referensi kolom database

Anda dapat melakukan pencocokan string untuk menguji setiap baris:

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;

Jadi misalnya, jika ORDER_PARTS_LIST adalah '123:456:789' , INSTR akan menemukan kecocokan untuk id 123, 456 dan 789, tetapi bukan 124, 45 atau 8, misalnya.

Saat suku cadang dihapus dari pesanan, Anda akan memerlukan pemicu yang berbeda untuk NULL bidang yang sesuai di 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Susun ulang kolom tabel di Oracle

  2. Bagaimana Anda menetapkan hasil ekspresi ke variabel substitusi SQL?

  3. Bagaimana saya bisa memberikan alias ke tabel di Oracle?

  4. verifikasi_queryable_inventory dikembalikan ORA-20008:Waktu habis

  5. Ada di kursor di mana kondisi terpenuhi