If you have overloaded PL/SQL procedures where the
parameter names are identical, but the data type is
owa_util.ident_arr (a table of varchar2) for one
procedure and a scalar type for another procedure,
mod_plsql can still distinguish between the two
procedures. For example, if you have the following
procedures:
CREATE PACKAGE my_pkg AS
PROCEDURE my_proc (val IN VARCHAR2); -- scalar data type
PROCEDURE my_proc (val IN owa_util.ident_arr); --
array data type
END my_pkg;
Each of these procedures has a single parameter of the
same name, val.
When mod_plsql gets a request that has only one value
for the val parameter, it invokes the procedure with
the scalar data type.
Example 1: Send the following URL to execute the scalar
version of the procedure:
http://www.acme.com/pls/mydad/my_proc?val=john
When mod_plsql gets a request with more than one value
for the val parameter, it then invokes the procedure
with the array data type.
Example 2: Send the following URL to execute the array
version of the procedure:
http://www.acme.com/pls/mydad/my_proc?val=john&val=sally
To ensure that the array version executes, use hidden
form elements on your HTML page to send dummy values
that are checked and discarded in your procedure.