Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Błąd wyzwalacza Oracle PL/SQL

dodaj ; na końcu zapytań sufiksowych

 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;

Możesz również zmniejszyć liczbę instrukcji if dla obu, wykonując to:Na przykład:

 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak znaleźć nazwę wiązania w Oracle?

  2. Unpivot on view nie działa w Oracle

  3. Tomcat nie może znaleźć pliku gdk_custom.jar, Oracle nie może go utworzyć?

  4. Jak znaleźć nazwę miasta, która nie zaczyna się i nie kończy na samogłoskę?

  5. Procedura PL/SQL:UPDATE nazwy wielkich liter do initcaps, ze specjalną obsługą niektórych wartości