आपकी प्रक्रिया में कई समस्याएं हैं।
- आपमें बनाएं . नहीं है कीवर्ड, और यही संकलन समय त्रुटि का मूल कारण है।
PLS-00103
।
CREATE PROCEDURE स्टेटमेंट एक स्टैंडअलोन संग्रहीत कार्यविधि या कॉल विनिर्देश बनाने के लिए।
- IN पैरामीटर के लिए डेटा प्रकार की घोषणा गलत है। आपको इसे इस प्रकार करने की आवश्यकता है:
EMP_USERNAME IN EMPLOYEE.EMP_USERNAME%TYPE
- फॉर लूप वाक्य रचना की दृष्टि से गलत है।
आप इसे इस प्रकार कर सकते हैं:
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>