Esportare le Stored Procedure in Oracle
Ieri avevamo la necessità di esportare tutte le Stored Procedure di un db Oracle.
La versione è la 12g, ma penso che quello che vedremo vada bene anche per le versioni precedenti.
Prima vediamo una query "secca" che tira fuori i dati così come richiesti.
I dati sono poi da copiare su un editor di testo:
SELECT dbms_metadata.get_ddl(object_type, object_name) FROM user_objects WHERE object_type IN ('PROCEDURE');
Nella WHERE possiamo indicare anche altri parametri, come le funzioni:
SELECT dbms_metadata.get_ddl(object_type, object_name) FROM user_objects WHERE object_type IN ('PROCEDURE', 'FUNCTION');
Poi, ho anche un modo per esportare tutto direttamente su file.
Io, però, non sono riuscito a farlo funzionare; nello specifico mi da un errore sul path di salvataggio dei file.
Però più di una persona mi ha indicato che è tutto corretto, quindi potrebbe essere un problema mio.
Testatela:
DECLARE
v_ddl_clob CLOB;
BEGIN
FOR c IN (SELECT object_name, object_type FROM user_objects WHERE object_type IN ('PROCEDURE','FUNCTION'))
LOOP
v_ddl_clob := dbms_metadata.get_ddl(c.object_type, c.object_name);
-- Scrive i file nella directory SQL_TEMP
dbms_xslprocessor.clob2file(v_ddl_clob, 'SQL_TEMP', c.object_name ||'.sql');
END LOOP;
END;
E' probabile che sbagli qualcosa nell'uso della funzione clob2file.
Enjoy!
oracle stored procedure clob2file
Commentami!