sql >> Databasteknik >  >> RDS >> Oracle

Fel i Oracle PL/SQL-proceduren

Du kan se felet från paketet med show errors omedelbart efter att satsen har körts, eller med select * from user_errors where name = 'COLUMN_SEC_PACKAGE' .

Din pakettext saknar en END; du har en för funktionen men inte för paketet:

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
/

Det är bra att ange vad du slutar vid varje punkt så att du enkelt kan plocka ut vad som saknas; indrag hjälper det också såklart. Du har inte heller visat en / efter paketspecifikationen, vilket bara kan vara ett kopiera-och-klistra misstag. Du måste köra båda kommandona, med en / efter varje:

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. Kan inte installera mysql gem på Mac OS X

  2. Är sammansatta unika nycklar indexerade i MySQL? - DBMS

  3. ConnectionString för att ansluta 3 masternoder till MySQL

  4. MySQL-sats till pivottabell utan att använda pivotfunktion eller en union