Boa noite, caro amigo, faça com o sqlplus, se você tentar com PL/SQL Developer vai dar a mesma coisa que te deu heheh faça assim por ex:
--Tablespaces SET LONG 6000 SPOOL C:\TABLESPACES.SQL COL dbms_metadata.get_ddl('TABLESPACE',TABLESPACE_NAME) FOR A5000 SELECT dbms_metadata.get_ddl('TABLESPACE',TABLESPACE_NAME)||';' FROM DBA_TABLESPACES; --Indices SET LONG 6000 SPOOL C:\INDICES_TESTDTA.SQL COL dbms_metadata.get_ddl('INDEX',INDEX_NAME,OWNER) FOR A5000 SELECT dbms_metadata.get_ddl('INDEX',INDEX_NAME,OWNER)||';' FROM DBA_INDEXES WHERE OWNER='OWNER'; --Tabelas SET LONG 6000 SPOOL C:\TABELAS_TESTDTA.SQL COL dbms_metadata.get_ddl('TABLE',TABLE_NAME,OWNER) FOR A5000 SELECT dbms_metadata.get_ddl('TABLE',TABLE_NAME,OWNER)||';' FROM DBA_TABLES WHERE OWNER='OWNER'; ----- Original Message ----- From: Elvio Barbalho To: oracle_br@yahoogrupos.com.br Sent: Tuesday, June 02, 2009 4:05 PM Subject: [oracle_br] criar ddl de objetos. Senhores bom dia, estou precisando gerar os dll de vários objetos na verdade mais de 1000. pesquisando encontrei o seguinte comando. select dbms_metadata.get_ddl(object_type, object_name) "DLL" from dual que me retorna um clob com o conteúdo da dll. Ai pensei agora ficou fácil vou fazer um script e pronto, entretanto para alguns objetos ele esta gerando um arquivo vazio para outros incompleto e para outros completo. Mas quando executo somente o comando para os casos em que da problema o comando retorna o conteúdo completo, e não estou conseguindo encontrar o problema abaixo esta o script. Alguém poderia me dar uma ajuda ou então me informar uma ferramenta que gere estes dll em arquivos separados???? declare file_saida UTL_FILE.file_type; p_path_saida VARCHAR2 (100); filename_saida VARCHAR2 (200); begin FOR A IN (SELECT object_name, object_type from all_objects where owner IN ('EXTRACT', 'CATEGORIZACAO') and object_type in ('PROCEDURE')) LOOP p_path_saida := '/bilprd1db/u040/utlfile'; filename_saida := A.object_name || '_' || A.object_type || '.SQL'; dbms_output.put_line(A.object_name || '_' || A.object_type || '.SQL'); file_saida := UTL_FILE.fopen (p_path_saida, filename_saida, 'W'); for b in (select dbms_metadata.get_ddl(A.object_type, A.object_name) as elvio from dual) loop UTL_FILE.put_line(file_saida, b.elvio); end loop; END LOOP; utl_file.fclose(file_saida); end; Elvio Barbalho Brasília, DF Brasil T + 55 61 21096814 C + 55 61 84223137 C + 55 61 81751213 elvio.barba...@gmail.com [As partes desta mensagem que não continham texto foram removidas] ------------------------------------------------------------------------------ O Banco de Dados de Vírus interno expirou. Verificado por AVG - http://www.avgbrasil.com.br Versão: 8.0.233 / Banco de dados de vírus: 270.10.16/1926 - Data de Lançamento: 30/1/2009 17:31 [As partes desta mensagem que não continham texto foram removidas]