Oracle
 sql >> база данни >  >> RDS >> Oracle

Създайте тригер за вмъкване в друга таблица

Не можете да извличате записи от една и съща таблица в задействане на ред. Можете да получите достъп до стойности от действителен запис, като използвате :new и :old (вашият случай ли е?). След това тригерът може да бъде пренаписан в

CREATE OR REPLACE TRIGGER AFTERINSERTCREATEBILL
AFTER INSERT
ON READING
FOR EACH ROW 

DECLARE

  varCustID   Varchar(10);

BEGIN 

  Select CustID INTO varCustID
    From Address A
    Join Meter M 
      on A.postCode = M.postCode
    Where M.MeterID = :new.MeterID;

  INSERT INTO BILL VALUES 
  (SEQBILLNO.NEXTVAL, SYSDATE, 'UNPAID' , 100 , varCustID , SEQREADNO.CURRVAL); 

END;

Ако трябва да направите заявка за друг запис от таблицата READING, трябва да използвате комбинация от задействания на оператори, задействане на редове и PLSQL колекция. Добър пример за това е на AskTom.oracle.com



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създаване на пространствен индекс на oracle

  2. Oracle:ORA-12154:Проблем с TNS:Excel 64-bit/Windows 10 64-bit

  3. PostgreSQL 9.5 - декодиране/избор на случай за разрешаване на грешка с utf8 не работи

  4. Автоинкрементът на oracle с последователност и тригер не работи правилно

  5. Запитване в EAV SQL Design