Reputation: 181
create or replace PROCEDURE empl_info(ename VARCHAR2,empid OUT
NUMBER,empcount OUT NUMBER,empname OUT VARCHAR2)
IS
BEGIN
SELECT COUNT(emp_name) INTO empcount FROM employees WHERE emp_name=ename;
SELECT emp_name, emp_id INTO empname,empid FROM employees WHERE
emp_name=ename;
END;
DECLARE en INT,ei INTEGER,ec INT;
EXECUTE empl_info('balu',ei OUTPUT,ec OUTPUT,en OUT);
SELECT en,ec;
error: ORA-06550:line 1,column 15 PLS-00103:encountered the symbol ";" when expecting one of the following.
can you solve this?
Upvotes: 0
Views: 16934
Reputation: 1
I know it sounds inadequate but I could get rid of this error when I called the procedure and the parameters on the same line.
So, when I called the procedure like below I got "ORA-06550:line 1,column 32 PLS-00103:encountered the symbol ";" when expecting one of the following." error:
EXEC PR_UNITE_FILES(
PARAMETER1,
PARAMETER2
);
But, when I called the procedure like below, I got no errors:
EXEC PR_UNITE_FILES( PARAMETER1, PARAMETER2 );
Upvotes: 0
Reputation: 65313
SQL> CREATE or REPLACE PROCEDURE empl_info(ename VARCHAR2,empid OUT NUMBER,empcount OUT NUMBER,empname OUT VARCHAR2) IS BEGIN SELECT COUNT(emp_name) INTO empcount FROM employees WHERE emp_name=ename; SELECT emp_name, emp_id INTO empname,empid FROM employees WHERE emp_name=ename; dbms_output.put_line(' employee name : '||empname||' | employee count : '||empcount); END;
just call variables without OUT or OUTPUT
SQL> set serveroutput on;
SQL> var ei number;
SQL> var ec number;
SQL> var en varchar2(100);
SQL> exec empl_info('balu',:ei,:ec,:en);
Upvotes: 0
Reputation: 516
Please use the proper syntax of ANONYMOUS BLOCK
DECLARE
en NUMBER;
ei NUMBER;
ec NUMBER;
BEGIN
empl_info('balu',ei,ec,en);
DBMS_OUTPUT.PUT_LINE('EN :'||en);
DBMS_OUTPUT.PUT_LINE('EC :'||ec);
END;
Upvotes: 0