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

PLS-00103 Oracle संग्रहीत कार्यविधि त्रुटि

एक संग्रहीत कार्यविधि घोषणा का कंकाल है

CREATE OR REPLACE PROCEDURE procedure_name( <<parameters>> ) 
AS
  <<variable declarations>>
BEGIN
  <<code>>
END procedure_name;

आपके द्वारा पोस्ट किए गए कोड में,

  1. आपने BEGIN डाला परिवर्तनीय घोषणाओं से पहले
  2. आपके पास एक बाहरी DECLARE है -- आप इसका उपयोग केवल तभी करेंगे जब आप एक PL/SQL ब्लॉक घोषित कर रहे हैं जिसमें CREATE शामिल नहीं है ।
  3. आपके RETURN . के बाद आपके पास अर्धविराम नहीं हैं बयान।
  4. एक प्रक्रिया एक मान नहीं लौटा सकती। यदि आप या तो 1 या 0 वापस करना चाहते हैं, तो आप शायद एक फ़ंक्शन चाहते हैं, प्रक्रिया नहीं। यदि आपको किसी प्रक्रिया की आवश्यकता है, तो आप एक OUT घोषित कर सकते हैं पैरामीटर।
  5. आपमें THEN की कमी है IF . के बाद

ऐसा लगता है कि आप कुछ ऐसा चाहते हैं

CREATE OR REPLACE FUNCTION LIST_ACTIONS_CHECK_ADD 
(
  LISTNAME IN VARCHAR2  
) 
  RETURN NUMBER
AS 
 CNT NUMBER;
BEGIN
 SELECT COUNT(LIST_NAME) 
   INTO CNT 
   FROM LISTS_MASTER 
  WHERE LIST_NAME = LISTNAME;
 IF (CNT > 0)
 THEN
   RETURN 1;
 ELSE
   RETURN 0;
  END IF;
END LIST_ACTIONS_CHECK_ADD;

ध्यान दें कि एक सामान्य मामले के रूप में, यह सुनिश्चित करने के लिए कि पैरामीटर और स्थानीय चर एक कॉलम का नाम साझा नहीं करते हैं, आप आमतौर पर किसी प्रकार के नामकरण सम्मेलन का उपयोग करना बेहतर समझते हैं। यह पता लगाने की कोशिश की जा रही है कि LISTNAME एक पैरामीटर या कॉलम नाम है और LIST_NAME के बीच क्या अंतर है और LISTNAME आम तौर पर भविष्य के प्रोग्रामर को भ्रमित करेगा। व्यक्तिगत रूप से, मैं एक p_ का उपयोग करता हूं पैरामीटर के लिए उपसर्ग और एक l_ स्थानीय चर के लिए उपसर्ग। मैं एंकर प्रकारों का उपयोग करने का भी सुझाव दूंगा-- lists_master.list_name%type अगर यही पारित किया जा रहा है

CREATE OR REPLACE FUNCTION LIST_ACTIONS_CHECK_ADD 
(
  P_LIST_NAME IN lists_master.list_name%type
) 
  RETURN NUMBER
AS 
 L_CNT NUMBER;
BEGIN
 SELECT COUNT(LIST_NAME) 
   INTO L_CNT 
   FROM LISTS_MASTER 
  WHERE LIST_NAME = P_LIST_NAME;
 IF (L_CNT > 0)
 THEN
   RETURN 1;
 ELSE
   RETURN 0;
  END IF;
END LIST_ACTIONS_CHECK_ADD;


  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. संग्रहित प्रक्रिया में बड़े बीएलओबी पास करना

  3. एचक्यूएल क्वेरी में कंडीटोन के साथ शामिल हों?

  4. Oracle में दो लंबे लंबे बिंदुओं के बीच की दूरी की गणना करें

  5. तालिका त्रुटि बनाएँ - Oracle SQL