Cara funcionou corretamente. Agora apareceu um erro quando insiro aspas 
simples, do tipo:
 insert into teste
 
 
 
 
 
 
 
 
 
 
 
 
É possível inserir exatametne da forma como está acima, o comando inteiro, 
inclusive com as suas aspas?values ('in('02','03','04','05')');


________________________________
De: J. Laurindo Chiappa <jlchia...@yahoo.com.br>
Para: oracle_br@yahoogrupos.com.br 
Enviadas: Quinta-feira, 24 de Janeiro de 2013 21:04
Assunto: [oracle_br] Re: Exportar CLOB


  
E um detalhe adicional, falando sobre programação dentro do Excel, que me 
Indica que realmente é questão de Ajuste na sua programação : embora eu mesmo 
não programe nem no Excel nem no VBA e quejandos, uma googlada rápida me mandou 
para alguns sites (como 
http://www.utteraccess.com/forum/GetChunk-Method-DAO-t469091.html, 
http://www.xtremevbtalk.com/showthread.php?t=206066 , 
http://www.bigresource.com/VB-GetChunk-Output-to-Excel-KWT0sno79u.html e 
http://support.microsoft.com/?id=185958) que parecem indicar que o 
"built-in/comando" necessário para se trabalhar com large strings, se vc 
estiver conectando com ADO no banco Oracle, é o tal do getchunk - veja as refs 
e em cima disso, avalie a info e faça uma pesquisa mais detalhada no sites de 
Suporte, foruns e na Documentação do Excel e do VBA, como citei...

Agora : aproveitando que vc confirma que os seus CLOBs são todos menores que 32 
KB, vc Nem Sequer precisa do trucão do UTL_FILE.PUT para gerar o arquivo num 
programinha PL/SQL, veja só :

==> Primeiro, criar tabela e uma massinha de dados :

SQL> create table TAB_TEST_CLOB (
2 c1 number,
3 c2 clob);

Tabela criada.

SQL> create or replace procedure lob_ins(p_id IN number, p_text IN varchar2 )
2 as
3 l_clob clob;
4 BEGIN
5 insert into TAB_TEST_CLOB values (p_id, empty_clob() ) returning c2 into 
l_clob;
6 dbms_lob.write( l_clob,length(p_text), 1,p_text);
7* END;

Procedimento criado.

SQL> exec lob_ins(1, 'Linha 1 com clob pequeno');

Procedimento PL/SQL concluÝdo com sucesso.

SQL> exec lob_ins(2, 'Linha 2:' || rpad('$', 20000, '%') || ':fim clob2');

Procedimento PL/SQL concluÝdo com sucesso.

SQL> exec lob_ins(2, 'Linha 3:' || rpad('+', 22000, '#') || ':fim clob3');

Procedimento PL/SQL concluÝdo com sucesso.

SQL> commit;

Commit concluÝdo.

==> veja que tenha um CLOB menor que 4000 e dois CLOBs maiores que 4000 mas 
menores que o limite de 32 KB do UTL_FILE e do PL/SQL :

SQL> select c1, dbms_lob.getlength(c2) tamanho from TAB_TEST_CLOB;

C1 TAMANHO
---------- ----------
1 24
2 20018
2 22018

SQL>

=> Passo 2, criar um arquivo com os dados do CLOB (e as outras colunas 
separadas por CHR(9), que é o TAB :

SQL> DECLARE
2 l_output utl_file.file_type;
3 BEGIN
4 l_output := utl_file.fopen('DIR_ADMIN', 'ARQ_TESTE_CLOB.TXT', 'w', 32760);
5 for R in (select c1, c2 from TAB_TEST_CLOB)
6 loop
7 utl_file.put_line(l_output, R.c1 || chr(9) || R.c2);
8 end loop;
9 utl_file.fclose(l_output);
10* END;
SQL> /

Procedimento PL/SQL concluÝdo com sucesso.

=> veja que gerou direitinho :

C:\Windows\system32>dir c:\admin\*.txt
O volume na unidade C é HD NOVO 320 GB
O Número de Série do Volume é C8A2-9666

Pasta de c:\admin

24/01/2013 20:42 42.072 ARQ_TESTE_CLOB.TXT
1 arquivo(s) 42.072 bytes
0 pasta(s) 66.144.690.176 bytes disponíveis

C:\Windows\system32>

==> agora no Excel (Excel 2010, mas deve funcionar no 2007 teu) eu peço um 
Arquivo/Abrir, escolho o meu arquivo .TXT acima, escolho na importação a opção 
"Delimitedo", escolho TAB como o caracter delimitador, e avanço : prontinho, tá 
feita a fofoca... Blz ?
Só para mostrar que Realmente importou tudinho, insiro uma coluna depois da 
primeira, e coloco nela a Fórmula =NÚM.CARACT(C1) , e depois copia essa fórmula 
para as outras linhas, óia o resultado beleza :

1 24 Linha 1 com clob pequeno
2 20018 Linha 
2:$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.......
3 22018 Linha 
3:+###########################################################################.......

okdoc ?

[]s

Chiappa

OBS : é Claro, no meu caso não tinha new lines dentro do CLOB, então não 
precisei tratar isso, ok ?? Se vc tem, provavelmente algum ajuste a mais será 
necessário....

--- Em mailto:oracle_br%40yahoogrupos.com.br, "J. Laurindo Chiappa" escreveu
>
> Acho que não : o que deve estar havendo é que a linguagem de script do Excel 
> (que afaik é o que vc está usando para conectar no RDBMS Oracle a partir do 
> Excel) deve exigir algum setting específico/alguma built-in própria para 
> permitir large strings.... 
> Enquanto vc pesquisa isso nos Fóruns e na documentação DO EXCEL (já que é uma 
> issue Excel, primeiramente), além dos sites/foruns/docs/fontes/refs de 
> especialistas na tal linguagem, o que eu Recomendo é o que já tinha falado na 
> outra resposta, ie : OU abandone a programação dentro do Excel e inverta a 
> ordem, conectando no banco com uma tool que seguramente permite export em 
> arquivo-texto de CLOBs, como a SQL Developer, e importe esse cara no Excel, 
> OU programe dentro do database em PL/SQL, gerando arquivo via UTL_FILE e 
> carregando-o no Excel....
> 
> []s
> 
> Chiappa
> 
> --- Em mailto:oracle_br%40yahoogrupos.com.br, Jales Jose Moraes escreveu
> >
> > Chiappa mas vi também que o 2007 comporta 32kb na célula. Acho que o 
> > problema pode ser que o excel não reconhece um formato CLOB. acho que vou 
> > ter que fazer um to_varchar e ir concatenando de 4 em 4kb...
> > 
> > 
> > 
> > ________________________________
> > De: Jales Jose Moraes 
> > Para: "mailto:oracle_br%40yahoogrupos.com.br"; 
> > Enviadas: Quinta-feira, 24 de Janeiro de 2013 16:32
> > Assunto: Re: [oracle_br] Re: Exportar CLOB
> > 
> > 
> >   
> > é verdade. è que o meu aqui é 2007...
> > 
> > ________________________________
> > De: J. Laurindo Chiappa mailto:jlchiappa%40yahoo.com.br>
> > Para: mailto:oracle_br%40yahoogrupos.com.br 
> > Enviadas: Quinta-feira, 24 de Janeiro de 2013 15:24
> > Assunto: [oracle_br] Re: Exportar CLOB
> > 
> >   
> > A respeito dos limites do Excel, em 
> > http://office.microsoft.com/en-us/excel-help/excel-specifications-and-limits-HP010342495.aspx
> >  eu vi que o máximo de uma coluna pode ser 32767 caracteres : SE o seu CLOB 
> > realmente é de no máximo 22 KB, vc não deve ter prob com isso ...
> > 
> > []s
> > 
> > Chiappa
> > 
> > --- Em mailto:oracle_br%40yahoogrupos.com.br, "J. Laurindo Chiappa" escreveu
> > >
> > > Absolutamente não conheço/não uso o Navigator - já vi gente usando há uns 
> > > tempos atrás mas eu mesmo não usei - , mas se é um negócio que vc faz 
> > > Manualmente, sob demanda, eu Sugiro a alternativa não-programada de uma 
> > > tool que garantidamente faça export de LOBs, como é o freeware da própria 
> > > Oracle chamado SQL Developer : baixa ele em http://technet.oracle.com/ 
> > > (pede um cadastro mas é de grátis) .. Com ele vc pode até afaik exportar 
> > > os dados da sua consulta diretamente até em .XLS : só não sei se o padrão 
> > > de arquivos .XLS permite uma coluna tão larga, mas é experimentar... Caso 
> > > o Excel não permita, experimente o formato .XLS...
> > > 
> > > []s
> > > 
> > > Chiappa
> > > 
> > > --- Em mailto:oracle_br%40yahoogrupos.com.br, Jales Jose Moraes escreveu
> > > >
> > > > Não, as CLOB's que temos dão no máximo 22kb, utilizo o navigator quando 
> > > > preciso fazer consultas rápidas no banco, daí eu "monto" a consulta e 
> > > > envio um .xls para o desenvolvedor, mas no caso quando tem CLOB não da 
> > > > certo. Ja tentei a conexão via o excel, mas ele não reconhece quando 
> > > > tem o CLOB...
> > > > 
> > > > 
> > > > 
> > > > ________________________________
> > > > De: J. Laurindo Chiappa 
> > > > Para: mailto:oracle_br%40yahoogrupos.com.br 
> > > > Enviadas: Quinta-feira, 24 de Janeiro de 2013 14:16
> > > > Assunto: [oracle_br] Re: Exportar CLOB
> > > > 
> > > > 
> > > >   
> > > > Bem, pra variar vc não diz versão de nada, não diz se os dados vão ser 
> > > > usados por um outro database Oracle (caso em que o exp ou o expdp podem 
> > > > servir), se essa tarefa precisa ser efetuada programaticamente OU se 
> > > > uma tool que tenha a capacidade (como por exemplo o freeware Oracle SQL 
> > > > Developer) pode ser manualmente executada, nem diz se os CLOBs são 
> > > > superiores ou não a 32 KB (o tamanho máximo de uma string no PL/SQL), 
> > > > mas seguinte : afora as tools que normalmente já manipulam isso para vc 
> > > > , supondo CLOBs maiores que 32 KB, se vc quer algo programado / 
> > > > automatizado via script, as opções são :
> > > > 
> > > > a) no sqlplus, se vc setar com SET LONG nnn o tamanho máximo, com SPOOL 
> > > > vc pode gravar dados CLOB, desde Que :
> > > > 
> > > > - o tamanho máximo dos teus CLOBs seja inferior ao máximo aceitado pelo 
> > > > sqlplus para o SET LONG
> > > > 
> > > > e
> > > > 
> > > > - as limitações do SPOOL (como a dificuldade de criar colunas nã-fixas) 
> > > > não te atrapalhem
> > > > 
> > > > b) se por qquer motivo a) não te serviu, aí vc Vai ter que partir para 
> > > > a Programação , num das alternativas :
> > > > 
> > > > 1. em PL/SQL, vc vai usar a UTL_FILE ** mas ** sem ser por put_line, 
> > > > mas sim juntando vários pedaços de 32 KB com PUT e FLUSH , 
> > > > http://searchoracle.techtarget.com/answer/Storing-CLOB-as-csv-file tem 
> > > > um exemplo (bem no fim da Página)
> > > > 
> > > > 2. se vc tiver java disponível (no seu database ou no seu ambiente), e 
> > > > se vc tiver alguma mínima experiência nele, Java é uma outra opção para 
> > > > vc programar : http://www.dba-oracle.com/t_export_unload_blob_clob.htm 
> > > > é um exemplo
> > > > 
> > > > 3. vc poder usar o pro*C da Oracle : 
> > > > http://phil-sqltips.blogspot.com.br/ tem um exemplo e algumas dicas 
> > > > básicas de compilação
> > > > 
> > > > 4. vc pode, SE as tiver instaladas, tentar as rotinas de geração de 
> > > > dados em XML : 
> > > > http://stackoverflow.com/questions/6538128/oracle-automate-export-unload-of-data
> > > >  tem um exemplo, não muito completo mas tá lá, a considerar... Eu mesmo 
> > > > não mexi muito com esses caras, então não sei nem indicar um exemplo 
> > > > mais completo, mas eles exitem...
> > > > 
> > > > okdoc ? E nem preciso dizer, quase TODAS as linguagens externas que 
> > > > podem conectar no RDBMS Oracle (perl/php, .NET, Delphi, VB, Cobol, etc, 
> > > > etc, etc) tem rotinas/comandos/built-ins de geração de arquivos que 
> > > > podem te ajudar, também... Idem para as tools que possuem linguagem de 
> > > > script interna e podem conectar no RDBMS, como Excel, por exemplo...
> > > > 
> > > > []s
> > > > 
> > > > Chiappa
> > > > 
> > > > 
> > > > --- Em mailto:oracle_br%40yahoogrupos.com.br, Jales Jose Moraes escreveu
> > > > >
> > > > > Pessoal estou trabalhando com campos CLOB's, mas não estou 
> > > > > conseguindo extrair os dados. A consulta retorna corretamente, mas 
> > > > > não consigo exportar  para um xls, csv,etc.
> > > > >  
> > > > > Alguém sabe como posso disponibilizar estes campos em algum formato 
> > > > > de arquivo?
> > > > > 
> > > > > [As partes desta mensagem que não continham texto foram removidas]
> > > > >
> > > > 
> > > > 
> > > > 
> > > > 
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > >
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> > 
> > 
> > 
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>




[As partes desta mensagem que não continham texto foram removidas]

Responder a