oracle8.1.6 select a0.package_name || '.' || a0.object_name from user_arguments a0 where position = 0 and argument_name is null and data_type = 'CHAR' and in_out = 'OUT' and exists (select 1 from user_arguments a1 where a1.package_name=a0.package_name and a1.object_name=a0.object_name and a1.position=1 and a1.data_type='NUMBER' and a1.in_out='IN') and exists (select 1 from user_arguments a2 where a2.package_name=a0.package_name and a2.object_name=a0.object_name and a2.position=2 and a2.data_type='VARCHAR2' and a2.in_out='IN') and exists (select 1 from user_arguments a3 where a3.package_name=a0.package_name and a3.object_name=a0.object_name and a3.position=3 and a3.data_type='VARCHAR2' and a3.in_out='IN') and exists (select 1 from user_arguments a4 where a4.package_name=a0.package_name and a4.object_name=a0.object_name and a4.position=4 and a4.data_type='VARCHAR2' and a4.in_out='IN') and exists (select 1 from user_arguments a5 where a5.package_name=a0.package_name and a5.object_name=a0.object_name and a5.position=5 and a5.data_type='VARCHAR2' and a5.in_out='IN') and exists (select 1 from user_arguments a6 where a6.package_name=a0.package_name and a6.object_name=a0.object_name and a6.position=6 and a6.data_type='VARCHAR2' and a6.in_out='IN')