Reputation: 274
I have a stored procedure which does the select statement. I have created another stored procedure which calls the earlier stored procedure,but enable to get the result. Below are the scripts
Proc1:
create or replace
PROCEDURE p_procedure3(custid IN number, custname OUT varchar2) IS
BEGIN
SELECT firstname
INTO custname
FROM customer_s
WHERE customerid = custid;
END p_procedure3;
proc2:
create or replace
procedure finalexecution
DECLARE
l_name varchar2(20);
BEGIN
p_procedure3(644, l_name);
dbms_output.put_line(l_name);
END;
but when is do exex finalexecution;
getting below error
Error starting at line 8 in command:
exec finalexecution
Error report:
ORA-06550: line 1, column 7:
PLS-00905: object CIMNEWUSER.FINALEXECUTION is invalid
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
Upvotes: 1
Views: 397
Reputation: 18629
Change the second procedure to:
create or replace
procedure finalexecution as
l_name varchar2(20):='';
BEGIN
p_procedure3(644, l_name);
dbms_output.put_line(l_name);
END;
For more details, refer Call a stored procedure with another in Oracle
Upvotes: 1
Reputation: 10525
Your finalexecution
procedure contains error. You should use IS
or AS
instead of DECLARE
. Check documentaion for more details.
Also in case if any error, you can check all_errors
view to find out what is causing the error.
Upvotes: 2