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

Грешка при задействане на Oracle PL/SQL

добавете ; в края на вашите заявки за суфикс

 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;

Можете също така да намалите броя оператори if и за двете, като направите следното:Например:

 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. Как да преименувате първичен ключ в Oracle, така че да може да се използва повторно

  2. Заявка за намиране на пълни сканирания на таблицата в oracle

  3. Декларативен подход за ограничаване на диапазони от данни в табл

  4. Инсталирайте Oracle Instant клиента в Docker контейнера за Python cx_Oracle

  5. Как да отпечатате SYS_REFCURSOR с прозорец на PLSQLDeveloper?