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

पीएल/एसक्यूएल प्रक्रिया:शब्दांकन के साथ समस्या

आपकी प्रक्रिया में कई समस्याएं हैं।

  1. आपमें बनाएं . नहीं है कीवर्ड, और यही संकलन समय त्रुटि का मूल कारण है। PLS-00103

CREATE PROCEDURE स्टेटमेंट एक स्टैंडअलोन संग्रहीत कार्यविधि या कॉल विनिर्देश बनाने के लिए।

  1. IN पैरामीटर के लिए डेटा प्रकार की घोषणा गलत है। आपको इसे इस प्रकार करने की आवश्यकता है:
EMP_USERNAME IN EMPLOYEE.EMP_USERNAME%TYPE
  1. फॉर लूप वाक्य रचना की दृष्टि से गलत है।

आप इसे इस प्रकार कर सकते हैं:

SQL> CREATE OR REPLACE
  2  PROCEDURE deploy_emp(
  3      i_emp emp.empno%type)
  4  IS
  5    emp_user VARCHAR2(50);
  6  BEGIN
  7    FOR indx IN
  8    (SELECT ename FROM emp
  9    )
 10    LOOP
 11      BEGIN
 12        BEGIN
 13          SELECT ename INTO emp_user FROM emp WHERE empno = i_emp;
 14        EXCEPTION
 15        WHEN NO_DATA_FOUND THEN
 16          emp_user := NULL;
 17        END;
 18      END;
 19    END LOOP;
 20    dbms_output.put_line(emp_user);
 21  END deploy_emp;
 22  /

Procedure created.

SQL> sho err
No errors.

अब, इसका परीक्षण करते हैं और देखते हैं:

SQL> set serveroutput on
SQL> EXEC deploy_emp(7369);
SMITH

PL/SQL procedure successfully completed.

SQL>


  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. Oracle NUMBER का स्केल प्रेसिजन से बड़ा कैसे हो सकता है?

  4. Oracle PLSQL में किसी संख्या के दशमलव स्थानों को न्यूनतम तक कैसे विस्तारित करें?

  5. Oracle तालिका का नाम बदलें या देखें