Per vedere il corpo dei nostri package dobbiamo verificare prima che versione di Oracle abbiamo installata.
Se si tratta di versioni pari o successive alla nove basta sfruttare il package nativo dbms_metadata. Con questa query riusciamo a ricavare quello che vogliamo:
SQL> select dbms_metadata.get_ddl('PACKAGE', '') from dual;
Se invece abbiamo versioni precedenti alla nove bisogna sfruttare le tabelle all_source :
SQL> desc all_source;
Name Null? Type
--------------------------------- -------- -------------------------------------------------
OWNER VARCHAR2(30)
NAME VARCHAR2(30)
TYPE VARCHAR2(12)
LINE NUMBER
TEXT VARCHAR2(4000)
e fare questa query se si vuole la definizione del package :
SELECT text
FROM all_source
WHERE owner = 'OWNER_PACKAGE'
AND name = 'NOME_PACKAGE'
AND type = 'PACKAGE'
ORDER BY type, line;
e questa se si vuole pure il body:
SELECT text
FROM all_source
WHERE owner = 'OWNER_PACKAGE'
AND name = 'NOME_PACKAGE'
AND type = 'PACKAGE BODY'
ORDER BY type, line;
Si può guardare la descrizione del package semplicemente laciando la funzione desc :
SQL> desc OWNER_PACKAGE.NOME_PACKAGE;