Every block in a PL/SQL program can have its own declaration of variables. This includes the sub-programs as well. Consider the following example: declare x number := 30; y number := 40;
procedure displaySum as a number := 10; b number := 20; begin dbms_output.put_line('Sum of numbers :' || (a+b) ); end;
BEGIN dbms_output.put_line('Sum is ' || (x+y) ); displaySum; END; In the above example, ‘x’ and ‘y’ are the variables declared for the main program (which are outside the procedure declaration). Next, ‘a’ and ‘b’ are the variables declared within the procedure. These variables are used only within the ‘begin’ and ‘end’ of procedure. Can we use the variables of the main block inside the sub-program? The answer is YES. We can use the variables of the main program inside the sub-program. But we can't do the opposite. That means the variables declared within the procedure are local to it and cannot be accessed beyond its boundaries. Let us consider the following example. declare x number := 30; y number := 40;
procedure displaySum as a number := 10; b number := 20; begin dbms_output.put_line('Sum of numbers :' || (a+b+x+y) ); end;
BEGIN dbms_output.put_line('Sum is ' || (x+y) ); displaySum; END; The only difference between the above two programs is the DBMS_OUTPUT statement within the procedure. In the above program, I am using variables of both the sub-program and the main program within the sub-program, which is perfectly all right.
blog comments powered by Disqus |
|
|
|
|
|
|
|