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

पैकेज बनाना sqlplus

जब आपको संकलन त्रुटियां मिलती हैं, तो आप देखना चाहेंगे कि आपको कौन सी त्रुटियां मिलीं। SQL*Plus में, आप show errors . कमांड का उपयोग करके ऐसा कर सकते हैं

SQL> create or replace package body fpf
  2  as
  3  procedure insert_rows
  4     (p_deptno IN dept.deptno%TYPE,
  5      p_dname IN dept.dname%TYPE,
  6      p_loc IN dept.loc%TYPE)
  7  as
  8  BEGIN
  9  INSERT INTO dept
 10  (deptno,dname,loc)
 11  values ( pl_deptno,pl_dname,pl_loc);
 12  end insert_rows;
 13  end fpf;
 14  /

Warning: Package Body created with compilation errors.

SQL> sho err
Errors for PACKAGE BODY FPF:

LINE/COL ERROR
-------- -----------------------------------------------------------------
9/1      PL/SQL: SQL Statement ignored
11/29    PL/SQL: ORA-00984: column not allowed here

त्रुटियां आपको बता रही हैं कि संकलक सोचता है कि पंक्ति 11, कॉलम 29 पर कीवर्ड एक कॉलम नाम है और आपके कोड में उस बिंदु पर कॉलम नामों की अनुमति नहीं है। लाइन 11 कॉलम 29 pl_loc है पहचानकर्ता। संभवतः, आपका इरादा किसी स्तंभ नाम के संदर्भ में नहीं था। संभवतः, आप चाहते हैं कि एक पैरामीटर का नाम हो। लेकिन Oracle उस पहचानकर्ता को पैरामीटर के रूप में नहीं पहचानता है। ऐसा इसलिए है क्योंकि आपके पैरामीटर का नाम p_loc . है नहीं pl_loc (अतिरिक्त l नोट करें )।

यदि आप तीनों मापदंडों के नाम को सही करते हैं, तो कोड संकलित हो जाता है

Wrote file afiedt.buf

  1  create or replace package body fpf
  2  as
  3  procedure insert_rows
  4     (p_deptno IN dept.deptno%TYPE,
  5      p_dname IN dept.dname%TYPE,
  6      p_loc IN dept.loc%TYPE)
  7  as
  8  BEGIN
  9  INSERT INTO dept
 10  (deptno,dname,loc)
 11  values ( p_deptno,p_dname,p_loc);
 12  end insert_rows;
 13* end fpf;
SQL> /

Package body created.



  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. UPSERT गतिशील तालिका नाम के साथ तालिका में

  3. किसी क्वेरी में कोई मिलान नहीं मिलने पर डिफ़ॉल्ट मान कैसे प्रदर्शित करें?

  4. Oracle के लिए ऑटो इंक्रीमेंट

  5. संग्रहित प्रक्रिया पर विशेषाधिकार खोजने के लिए ओरेकल क्वेरी