CREATE OR REPLACE TYPE stw_ty_row FORCE AS OBJECT( company VARCHAR2(4), agreement NUMBER(10), start_date DATE, end_date DATE ); CREATE OR REPLACE TYPE stw_ty_table IS TABLE OF stw_ty_row; CREATE PACKAGE mypackage as PROCEDURE prc_do_stuff(p_tbl IN stw_ty_table, p_output OUT sys_refcursor); END; SELECT left.argument_name, left.type_name, right.type_name sub_type_name, left.defaulted defaulted FROM user_arguments left LEFT JOIN user_arguments right ON ( right.object_name = left.object_name AND (right.package_name = left.package_name OR (right.package_name IS NULL AND left.package_name IS NULL)) AND right.sequence = left.sequence + 1 AND left.data_type = 'TABLE' ) WHERE left.object_name = 'PRC_DO_STUFF' AND (left.package_name = 'MYPACKAGE' OR 'MYPACKAGE' IS NULL) AND left.data_level = 0 ORDER BY left.sequence;