Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle PL/SQL प्रक्रिया में त्रुटि

आप show errors . का उपयोग करके पैकेज से एरर देख सकते हैं कथन निष्पादित करने के तुरंत बाद, या select * from user_errors where name = 'COLUMN_SEC_PACKAGE'

आपके पैकेज के मुख्य भाग में END का अभाव है; आपके पास फ़ंक्शन के लिए एक है लेकिन पैकेज के लिए नहीं:

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
/

यह निर्दिष्ट करना उपयोगी है कि आप प्रत्येक बिंदु पर क्या समाप्त कर रहे हैं ताकि आप आसानी से चुन सकें कि क्या गुम है; इंडेंटेशन वह भी निश्चित रूप से मदद करता है। आपने / भी नहीं दिखाया है पैकेज विनिर्देश के बाद, जो सिर्फ कॉपी-पेस्ट की गलती हो सकती है। आपको / . के साथ दोनों कमांड चलाने की जरूरत है प्रत्येक के बाद:

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. किसी उपयोगकर्ता के लिए सभी Oracle डेटाबेस विशेषाधिकार कैसे दिखाएं

  2. PL/SQL - अनुप्रयोग त्रुटि उदाहरण उठाएँ

  3. एसक्यूएल लोडर कमांड निष्पादित करते समय त्रुटि होने पर रोलबैक कैसे करें?

  4. R Dataframe से Oracle डेटाबेस में कई पंक्तियाँ सम्मिलित करें

  5. Oracle:महीने के हिसाब से विभाजन तालिका