Eu já disse isso em outra ocasião aqui no Fórum mesmo, torno a repetir : a tua 
expressão 'insert simples' sugere que vc está trabalhando diretamente com a 
linguagem SQL, informando diretamente os valores para um INSERT - o que ocorre 
é a linguagem SQL *** TEM LIMITES MÀXIMOS *** para strings, é são MUITO muito 
muito menores do que os 4 Gb que o LOB permite (para referência, se o SQL está 
sendo usado diretamente o limite é de cerca de 4Kb, se o SQL está embebido num 
PL/SQL são cerca de 32 Kb, os manuais de Reference citam os valores exatos pra 
tua versão de banco seja qual for). 
===>>> SENDO ASSIM, vou ser categórico vc *** NÃO *** vai conseguir via 'INSERT 
simples' se os valores a inserir ultrapassam os limites da linguagem SQL, 
PONTO. A solução é usar a API (disponível ao PL/SQL) que a Oracle disponibiliza 
para isso, é uma package chamada DBMS_LOB, nela há comandos para se 'quebrar' a 
string imensa em pedaços consumíveis pelo PL/SQL é isso. Se vc quer ter isso 
para envio de dados para um Cliente seu (por exemplo) essa é a solução, NÃO USE 
um script aonde vc chama o SQL diretamente, e sim tenha um script aonde vc 
chame blocos PL/SQL que façam via DBMS_LOB as ações necessárias.

 []s
 
  Chiappa
  

--- Em oracle_br@yahoogrupos.com.br, francisco porfirio 
<francisco.porfi...@...> escreveu
>
> Pessoal,
> 
> Estou tentando gerar uma série de inserts para popular uma determinada
> tabela, porém não estou conseguindo inserir dados no campo blob.
> 
> Primeiro eu estou fazendo um select para montar meus inserts, ja tentei usar
> a função to_lob porém surge o seguinte erro: ORA-01704: literal de string
> extenso demais
> Em alguns locais o pessoal sugeria o dbms_lob.wirte()
> 
> Alguém sabe alguma forma que através de um comando insert simples eu consiga
> inserir estes dados?
> 
> 
> 
> Versão do banco: 10.2.0.4.0
> 
> 
> -- 
> Atenciosamente
> Francisco Porfirio Ribeiro Neto
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a