Loop em campo Blob - como manipular?

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP

Galera, bom dia

estou carregando um arquivo texto numa variável BLOB e preciso manipular em loop, para ler linha a linha e aplicar os SUBSTRs da vida para inserir no banco, mas não sei como fazer o loop, a iteração entre as linhas e quando saber o momento de sair do loop, alguém pode me ajudar?

ex do conteúdo do BLOB:

Selecionar tudo

1TECNOMETRICA   102008    
2AAB0810200810000001000005
2AAB0810200810000001000010
2AAB0810200810000006000025
2AAB0810200810000014000050
2AAB0810200810000001000100
Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP

galera, acho que achei um exemplo aqui, peguei duma parada que está em PL/WEB, ainda vou adaptar pra minha necessidade aqui, mas basicamente é isso, se alguém precisar...

Selecionar tudo

l_amount    BINARY_INTEGER := 50; --no caso, meu arquivo tem no máximo 50 caracteres em cada linha
l_pos         INTEGER := 1;
l_clob_len  INTEGER;
l_clob_len  INTEGER;

.
.
.

l_clob_len := DBMS_LOB.getlength(v_blob); 

 WHILE l_pos < l_clob_len LOOP
    DBMS_LOB.read (v_blob, l_amount, l_pos, l_buffer);   
    htp.p ('<h5>Linha -->'||utl_raw.cast_to_varchar2(l_buffer)||'<--</h5>');  
    l_pos := l_pos + l_amount;
 END LOOP;

Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP

Alguém sabe como eu identifico uma quebra de linha dentro de um BLOB???

estou precisando com muita urgência!

no exemplo qu e peguei, não funcionando direito!

Selecionar tudo

DBMS_LOB.read (v_blob, l_clob_len, l_pos, l_buffer);[code]
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes