can we call a procedure from a function?
Answer Posted / abhishekjaiswal
DECLARE
FUNCTION my_func RETURN NUMBER IS
BEGIN
RETURN 2;
END my_func;
PROCEDURE my_proc IS
BEGIN
DBMS_OUTPUT.PUT_LINE(my_func + 1);
END my_proc;
BEGIN -- main
my_proc;
END; -- main
As shown above, with the function declared first you can call the function from the procedure. However, if you try something like the following (function declared before procedure, and function calls procedure):
DECLARE
FUNCTION my_func RETURN NUMBER IS
BEGIN
my_proc;
RETURN 2;
END my_func;
PROCEDURE my_proc IS
BEGIN
DBMS_OUTPUT.PUT_LINE('22');
END my_proc;
BEGIN -- main
DBMS_OUTPUT.PUT_LINE(my_func);
END; -- main
the compile will fail, because my_func cannot 'see' my_proc. To make it work you need to put in a 'prototype' declaration of my_proc, as follows:
DECLARE
PROCEDURE my_proc;
FUNCTION my_func RETURN NUMBER IS
BEGIN
my_proc;
RETURN 2;
END my_func;
PROCEDURE my_proc IS
BEGIN
DBMS_OUTPUT.PUT_LINE('22');
END my_proc;
BEGIN -- main
DBMS_OUTPUT.PUT_LINE(my_func);
END; -- main
| Is This Answer Correct ? | 0 Yes | 0 No |
Post New Answer View All Answers
What is crud stand for?
What is union and union all keyword in sql?
What does (*) mean in sql?
What do you understand by case manipulation functions?
What is bulk collect in pl sql?
What are joins in sql?
Why do we need cursor in pl sql?
What is partition by in sql?
How to install oracle sql developer?
What is an ndf file?
Explain select statements in sql?
explain the difference between bool, tinyint and bit. : Sql dba
Is progress software supports to ( pl/sql )?
What is the purpose of the primary key?
What are the disadvantages of file system?