Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Kesalahan dalam prosedur Oracle PL/SQL

Anda dapat melihat kesalahan dari paket menggunakan show errors segera setelah mengeksekusi pernyataan, atau dengan select * from user_errors where name = 'COLUMN_SEC_PACKAGE' .

Isi paket Anda tidak memiliki END; Anda memiliki satu untuk fungsi tetapi tidak untuk paket:

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
/

Sangat membantu untuk menentukan apa yang Anda akhiri di setiap titik sehingga Anda dapat dengan mudah memilih apa yang hilang; lekukan membantu itu juga tentu saja. Anda juga belum menunjukkan / setelah spesifikasi paket, yang mungkin hanya kesalahan salin dan tempel. Anda perlu menjalankan kedua perintah, dengan / setelah setiap:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Haruskah saya menghapus atau menonaktifkan baris dalam database relasional?

  2. Ulangi daftar kolom tabel, dan terapkan kueri ke kolom tersebut

  3. Membuat tabel ini di oracle 10g

  4. Bagaimana membatasi baris di mana SUM kolom sama dengan nilai tertentu di Oracle

  5. Bagaimana cara memformat jenis Interval ke format HH:MM?