sql >> Databáze >  >> RDS >> Oracle

Chyba v proceduře Oracle PL/SQL

Chybu z balíčku můžete vidět pomocí show errors ihned po provedení příkazu nebo pomocí select * from user_errors where name = 'COLUMN_SEC_PACKAGE' .

V těle vašeho balíčku chybí END; máte jeden pro funkci, ale ne pro balíček:

CREATE OR REPLACE package body COLUMN_SEC_PACKAGE is
  FUNCTION TEST_SEC( OWNER VARCHAR2, OBJNAME VARCHAR2) RETURN VARCHAR2 is
    v_SQL VARCHAR2(2000):='1=0';
  begin
    IF (SYS_CONTEXT('USERENV','SESSION_USER') ='VPD1') THEN
      v_SQL:=NULL;
    END IF;
    RETURN V_SQL;
  end;  -- end of function
-- no end for the package
/

Je užitečné určit, co v každém bodě končíte, abyste mohli snadno vybrat, co chybí; odsazení tomu samozřejmě také pomáhá. Také jste neukázali / po specifikaci balíčku, což může být jen chyba při kopírování a vkládání. Musíte spustit oba příkazy s / po každém:

CREATE OR REPLACE PACKAGE COLUMN_SEC_PACKAGE AS
  FUNCTION TEST_SEC (OWNER VARCHAR2, OBJNAME VARCHAR2) RETURN VARCHAR2;
END COLUMN_SEC_PACKAGE;
/
CREATE OR REPLACE package body COLUMN_SEC_PACKAGE is
  FUNCTION TEST_SEC( OWNER VARCHAR2, OBJNAME VARCHAR2) RETURN VARCHAR2 is
    v_SQL VARCHAR2(2000):='1=0';
  begin
    IF (SYS_CONTEXT('USERENV','SESSION_USER') ='VPD1') THEN
      v_SQL:=NULL;
    END IF;
    RETURN V_SQL;
  end TEST_SEC;
END COLUMN_SEC_PACKAGE;
/



  1. Jak používat bootstrap css tabulky k zobrazení dat z MySQL tabulek?

  2. přidání primárního klíče do zobrazení SQL

  3. MySQL:Optimalizujte tabulku se spoustou sloupců

  4. Zkontrolujte, zda je objekt tabulkou, zobrazením nebo uloženou procedurou na serveru SQL pomocí funkce OBJECTPROPERTY()