Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Lỗi trong thủ tục Oracle PL / SQL

Bạn có thể thấy lỗi từ gói bằng cách sử dụng show errors ngay sau khi thực hiện câu lệnh hoặc với select * from user_errors where name = 'COLUMN_SEC_PACKAGE' .

Nội dung gói của bạn thiếu END; bạn có một cái cho hàm nhưng không cho gói:

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
/

Sẽ rất hữu ích nếu chỉ rõ những gì bạn đang kết thúc tại mỗi thời điểm để bạn có thể dễ dàng chọn ra những gì còn thiếu; thụt lề cũng giúp điều đó tất nhiên. Bạn cũng chưa hiển thị / sau đặc điểm kỹ thuật gói, đó có thể chỉ là một lỗi sao chép và dán. Bạn cần chạy cả hai lệnh, với / sau mỗi:

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. SQL Server / Oracle:Các bảng tạm thời riêng tư

  2. java trả về giá trị chuỗi trống cho VARCHAR2 oracle

  3. Máy ảo nhà phát triển Oracle với Oracle 11g

  4. Xóa các bản ghi khỏi bảng nguồn sau khi những bản ghi đó đã được chuyển qua thủ tục được lưu trữ sang bảng đích

  5. Đặt múi giờ của phiên với Spring jdbc oracle