sql >> Database >  >> RDS >> Oracle

Oracle PL/SQL-triggerfout

voeg ; toe aan het einde van uw achtervoegselquery's

 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;

U kunt ook het aantal if-statements voor beide verminderen door dit te doen:Bijvoorbeeld:

 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. Hoe maak je een alleen-lezen gebruiker aan in PostgreSQL?

  2. Hoe de resultaten worden gemengd tussen twee tabellen bij gebruik van UNION

  3. Hoe zorg je voor inzendingen met niet-overlappende tijdbereiken?

  4. Querygroep repareren met only_full_group_by