Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> PL-SQL Tables -- undocumented restrictions?
Hello.
I am attempting to use a PL-SQL table as a parameter in a function. Although my "PL/SQL User's Guide and Reference" (Release 2.3, page 4-4) does not state any restrictions in using PL-SQL tables as function or procedure parameters. I am running PL-SQL release 2.3.3.4.0 against Oracle7 Server Release 7.3.3.4.0.
I have included the test package and test script. Have I made an error in my declarations, or are the run-time errors observed when running the test script an undocumented restriction of PL-SQL tables?
My goal is to pass a pl-sql table directly to function 'func' (in
jtest.pkg below).
If I call this function directly (as in test.sql below), the
PL-SQL compiler shows the following message:
ERROR at line 1:
ORA-06550: line 11, column 11: PLS-00306: wrong number or types of arguments in call to 'FUNC ORA-06550: line 11, column 2:
If I call test_func from test.sql, test_func can call func correctly because test_func and func are declared in the same package. Thus, passing a PL-SQL table does not cause an error.
I suspect that you can only use a PL-SQL table as a parameter to a function or procedure if the calling block is part of the package where the PL-SQL table was declared. Thus, attempting to call a function with a PL-SQL table as a parameter from an anonymous block (as in test.sql) will cause the above error.
Thanks for any help on this one.
Jeffery Cann
create or replace package jtest as
function func(
indata in number, outdata in out pt_criteria_tab )
function test_func
return number;
end jtest;
/
show errors package jtest;
create or replace package body jtest as
indata in number, outdata in out pt_criteria_tab
i number := 0;
begin
return i;
end func;
error number; lindata number; loutdata pt_criteria_tab; begin error := jtest.func(lindata,loutdata); return error;
declare
begin
--
Jeffery Cann
Fairway Systems, Inc.
Senior Software Engineer
Received on Thu Aug 20 1998 - 00:00:00 CDT
![]() |
![]() |