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

Błąd w procedurze Oracle PL/SQL

Możesz zobaczyć błąd z pakietu za pomocą pokaż błędy natychmiast po wykonaniu instrukcji lub za pomocą wybierz * from user_errors gdzie name ='COLUMN_SEC_PACKAGE' .

W treści Twojego pakietu brakuje END; masz jeden dla funkcji, ale nie dla pakietu:

 UTWÓRZ LUB ZAMIEŃ treść pakietu COLUMN_SEC_PACKAGE to FUNKCJA TEST_SEC( WŁAŚCICIEL VARCHAR2, NAZWA OBIEKTU VARCHAR2) RETURN VARCHAR2 to v_SQL VARCHAR2(2000):='1=0'; rozpocznij JEŻELI (SYS_CONTEXT('USERENV','SESSION_USER') ='VPD1') TO v_SQL:=NULL; KONIEC JEŚLI; POWRÓT V_SQL; koniec; -- koniec funkcji-- brak końca dla pakietu/ 

Pomocne jest określenie, co kończysz w każdym punkcie, dzięki czemu możesz łatwo rozpoznać, czego brakuje; wcięcie oczywiście też w tym pomaga. Nie pokazałeś również / po specyfikacji pakietu, co może być po prostu błędem kopiowania i wklejania. Musisz uruchomić obie komendy, z / po każdym:

UTWÓRZ LUB ZAMIEŃ PAKIET COLUMN_SEC_PACKAGE JAKO FUNKCJĘ TEST_SEC (WŁAŚCICIEL VARCHAR2, NAZWA OBIEKTU VARCHAR2) RETURN VARCHAR2;END COLUMN_SEC_PACKAGE;/UTWÓRZ LUB ZAMIEŃ treść pakietu COLUMN_SEC_PACKAGE jest FUNKCJĄ TEST_CHARARSEC VARSEC( OBJAR2) VCHAR2 CHAR2 2000):='1=0'; rozpocznij JEŻELI (SYS_CONTEXT('USERENV','SESSION_USER') ='VPD1') TO v_SQL:=NULL; KONIEC JEŚLI; POWRÓT V_SQL; koniec TEST_SEC;END COLUMN_SEC_PACKAGE;/


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyświetlaj dynamiczne wyjście EXECUTE W obrębie pl/sql Z sqlplus

  2. Jak deklarować i używać zmiennych w PL/SQL, tak jak robię to w T-SQL?

  3. konwertuj unix_timestamp na timestamp w Oracle

  4. Jak korzystać z globalnej tabeli tymczasowej w procedurze Oracle?

  5. Oracle DB i SQL Developer:Raport o błędzie:wykonanie zakończone z ostrzeżeniem — Jak *zobaczyć* ostrzeżenie?