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]

Responder a