**Hi!
Under 5.5 there was a lot of support for executing out type out arguments, this is missing since 6.0:**
Create following package:
CREATE OR REPLACE PACKAGE PK_TEST_TYPES IS
TYPE tRec IS RECORD(
a VARCHAR2(1)
, b VARCHAR2(1)
);
TYPE tTab IS TABLE OF tRec;
PROCEDURE pr_rec(vRec OUT tRec);
PROCEDURE pr_tab(vTab OUT tTab);
END;
/
CREATE OR REPLACE PACKAGE BODY PK_TEST_TYPES IS
PROCEDURE pr_rec(vRec OUT tRec) IS
BEGIN
NULL;
END pr_rec;
PROCEDURE pr_tab(vTab OUT tTab) IS
BEGIN
NULL;
END pr_tab;
END;
/
Then execute the procedures as stub:
under 5.5
DECLARE
vrec PK_TEST_TYPES.TREC;
BEGIN
– Now call the stored program
pk_test_types.pr_rec(vrec);
– Output the results
dbms_output.put_line(SubStr('vrec.A = '||vrec.A,1,255));
dbms_output.put_line(SubStr('vrec.B = '||vrec.B,1,255));
END;
DECLARE
vrec PK_TEST_TYPES.TREC;
BEGIN
– Now call the stored program
pk_test_types.pr_rec(vrec);
– Output the results
dbms_output.put_line(SubStr('vrec.A = '||vrec.A,1,255));
dbms_output.put_line(SubStr('vrec.B = '||vrec.B,1,255));
END;
under 6.2.1:
– Parameters of unsupported types detected.
– Please modify the code below manually.
DECLARE
vrec pk_test_types.trec;
BEGIN
pk_test_types.pr_rec(
vrec=>vrec);
END;
– Parameters of unsupported types detected.
– Please modify the code below manually.
DECLARE
vtab pk_test_types.ttab;
BEGIN
pk_test_types.pr_tab(
vtab=>vtab);
END;