Voici quelques query basique pour jouer un peu avec les metadata et la definition de package Oracle.
La query suivante retourne la liste des package.
SELECT * FROM user_objects WHERE object_type='PACKAGE';
Obtenir la liste des procédures dans un package donné :
SELECT * FROM SYS.DBA_PROCEDURES WHERE OBJECT_NAME = 'PACKAGE_NAME';
Pour obtenir les arguments d’un objet dans le package :
SELECT * FROM SYS.ALL_ARGUMENTS WHERE PACKAGE_NAME = 'PACKAGE_NAME'; AND OBJECT_NAME = 'PROCEDURE_NAME'
Pour obtenir le body du package :
SELECT dbms_metadata.get_ddl('PACKAGE_BODY', 'PACKAGE', 'SCHEMA') FROM dual;
Pour obtenir les spécifications :
SELECT dbms_metadata.get_ddl('PACKAGE','PACKAGE_NAME') FROM dual;
(Note : je ne suis pas DBA oracle, donc si vous connaissez des manières plus optimisées de trouver les résultats, je suis preneur ^^)
Les query on été testés via TOAD for Oracle 11 sur Oracle 10g sous RedHat 4.6