sql >> Databasteknik >  >> RDS >> Oracle

Oracle PL/SQL triggerfel

lägg till ; i slutet av dina suffixfrågor

 ELSIF :NEW.suffix = '' THEN
    SELECT MAX(suffix)+1 INTO :NEW.suffix 
    FROM tb1 WHERE reportnum = :NEW.reportnum;

ELSIF :NEW.suffix = NULL THEN
    SELECT MAX(suffix)+1 INTO :NEW.suffix 
    FROM tb1 WHERE reportnum = :NEW.reportnum;

Du kan också minska antalet if-satser för båda genom att göra så här:Till exempel:

 IF coalesce(:NEW.reportnum,-1) = -1  THEN
    SELECT seq1.NEXTVAL INTO :NEW.reportnum FROM dual;  

ELSIF coalesce(:NEW.suffix,-1) = -1 THEN
    SELECT MAX(suffix)+1 INTO :NEW.suffix 
    FROM tb1 WHERE reportnum = :NEW.reportnum;
END IF; 


  1. Hur utför man jobben i Oracle?

  2. Finns det något sätt att gå igenom en tabellvariabel i TSQL utan att använda en markör?

  3. PDO Bind Params beroende på om de finns i frågan

  4. Sphinx vs. MySql - Sök igenom lista över vänner (effektivitet/hastighet)