Pessoas bom dia....

Poderiam em ajudar?

tenho um banco 9i.

Fiz um script para usar o dbms_lob.copy, porém estou tendo problemas.

Alguém tem um exemplo para eu usar uma pl com manipulação de clob utilizando
o dbms_lob.copy?

Poderiam me passar como é o procedimento?

fiz este abaixo que extraiu dde um clob a primeira ocorrência de um chr(10).
depois manipulo o clob para subescrever o conteúdo apagando a seguencia lida
com o conteúdo do clob da posição do chr(10)+ 1 posição.

porém quando executo em modo debug ele para a execução sem mostrar o erro.

        begin
           SELECT instr (DBMS_LOB.SUBSTR(TRIM(vi_clob), 32000, 1), CHR(10),
1, 1)  INTO vi_x FROM dual; -- primeira_posicao do array do chr(10)
           SELECT substr(DBMS_LOB.SUBSTR(TRIM(vi_clob),100,1),1,vi_x  )
into vix_array FROM dual; -- extrai o array com o chr(10)
           SELECT substr(DBMS_LOB.SUBSTR(TRIM(vi_clob),100,1),1,vi_x - 1 )
into vi_array  FROM dual; -- extrai o array sem o chr(10)
   ----   exclui do clob o array a ser manipulado
           p_what := vix_array;
           p_with := '';
          n := dbms_lob.instr( vi_clob, p_what, l_offset );
          /* Opening the LOBs is optional: */
          DBMS_LOB.OPEN(vi_clob, DBMS_LOB.LOB_READWRITE);
          /* Copies the LOB from the source position to the destination
position: */
          DBMS_LOB.COPY(vi_clob,
p_what,dbms_lob.getlength(vi_clob)-length(p_what),1,n+length(p_what) );
          /* Closing LOBs is mandatory if you have opened them: */
          DBMS_LOB.CLOSE(vi_clob);
           select dbms_lob.instr( vi_clob, CHR(10)) into vi_count_array
>From  dual; --  Extrai o array a ser manipulado
        end;


Aguardo a ajuda dos colegas...


Obrigado

Rogério


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

Responder a