Overloaded procedures in federated systems
Overloaded procedures are procedures that have identical names and schemas. Overloaded procedures can have a different number of parameters or different parameter signatures. The purpose of overloading a procedure is to create similar versions of a procedure.
The federated server allows overloaded procedures only if each procedure has a different number of parameters.
Oracle allows overloaded procedures if each procedure has a different number of parameters or if the parameter types are different. You can create federated procedures for Oracle overloaded procedures.
To distinguish procedures that use the identical name, schema name and number of parameters, you must specify the UNIQUE ID when you create the federated procedure.
You can determine the UNIQUE ID by querying the Oracle catalog.
Query the Oracle catalog
To determine the UNIQUE ID, you can query the OVERLOAD column in the Oracle SYS.ALL_ARGUMENTS catalog. The UNIQUE ID value is a character literal that contains a number, such as 1. You can use the passthru mode on the federated server or query the Oracle client directly.
SELECT owner, package_name, object_name, overload, position, argument_name, in_out,
data_type
FROM all_arguments aa
WHERE object_name like 'HJZ%'
ORDER BY owner, package_name, object_name,overload, position;OWNER PACKAGE_NAME OBJECT_NAME OVERLOAD POSITION ARGUMENT_NAME IN_OUT DATA_TYPE
-------- ------------ ----------- -------- -------- ------------- ------ ---------
J15USER1 HJZ_PACK1 HJZTEST1 1 1 A IN NUMBER
J15USER1 HJZ_PACK1 HJZTEST1 2 1 A IN CHAR
J15USER1 HJZ_PACK1 HJZTEST1 3 0 - OUT CHAR
J15USER1 HJZ_PACK1 HJZTEST1 3 1 A IN NUMBER
J15USER1 HJZ_PACK1 HJZTEST3 1 1 A IN NUMBER
J15USER1 HJZ_PACK1 HJZTEST3 1 2 B OUT NUMBER
J15USER1 HJZ_PACK1 HJZTEST3 2 1 A IN CHAR
J15USER1 HJZ_PACK1 HJZTEST3 2 2 B OUT CHAR
J15USER1 - HJZTEST1 - 1 A IN NUMBER
9 record(s) selected.CREATE PROCEDURE HJZTEST1 SOURCE J15USER1.HJZ_PACK1.HJZTEST1
NUMBER OF PARAMETERS 1 UNIQUE ID '2'
FOR SERVER ORA_SERVER WITH RETURN TO CLIENT ALL;