martedì 25 agosto 2009

Package Oracle

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;

Nessun commento:

Posta un commento