DBMS_LOB

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
  

Mensagemem Qua, 24 Mai 2006 9:56 am

Ol� pessoal, dada a quantidade de dados muito grande no arquivo, estou tentando inserir ele em um campo CLOB, por�m:

Código: Selecionar todos
        DBMS_LOB.fileopen( arq, DBMS_LOB.FILE_READONLY );
       
        DBMS_LOB.loadfromfile(CLOB_LOC,arq,dbms_lob.getlength(arq));
       
        Dbms_Lob.FileClose ( arq );


ao efeutar o loadfromfile em uma vari�vel CLOB_LOC do tipo clob ele me retorna o erro:

9:52:49 Target session: ORA-06502: PL/SQL: erro: invalid LOB locator specified:

select DIRECTORY_PATH from ALL_DIRECTORIES where DIRECTORY_NAME = 'DIR_TMP';

O diret�rio em que se encontra o arquivo a ser lido est� corretamente inserido no ALL_DIRECTORIES e n�o ocorre erro no Open, ele abre o arquivo normal e fecha, por�m n�o carrega o conte�do do arquivo na vari�vel CLOB.

Grato pela ajuda!

[]'s
MuLtAnI
Localização: Videira - SC


Mensagemem Qui, 25 Mai 2006 4:48 pm

Olá, criei uma função para ler o arquivo e ela está lendo na boa, se não fosse o problema de o Clob que me retorna não conter todo o conteúdo do arquivo... digamos que nem a metade...

Código: Selecionar todos
FUNCTION FLEARQUIVO( arq IN varchar2, dir IN varchar2 )
  RETURN clob IS
BEGIN
DECLARE
    arquivo BFILE;

    dest_clob   CLOB;
    dst_offset  number := 1 ;
    src_offset  number := 1 ;
    warning     number;
   
    BEGIN
        arquivo := BFILENAME( dir, arq );
       
        INSERT INTO test_clob(id, file_name, arquivo, timestamp)
        VALUES(1001, arq, empty_clob(), sysdate)
        RETURNING arquivo INTO dest_clob;
       
        DBMS_LOB.OPEN(arquivo, DBMS_LOB.LOB_READONLY);
       
        DBMS_LOB.LoadFromFile(
          DEST_LOB => dest_clob
        , SRC_LOB  => arquivo
        , AMOUNT   => DBMS_LOB.GETLENGTH( arquivo ) );
       
        DBMS_LOB.CLOSE( arquivo );
       
        commit;

        RETURN dest_clob;
    END;
END;


alguém sabe por que isso pode estar acontecendo? já que meu Amount é do Length do arquivo...

obrigado..

[]'s
MuLtAnI
Localização: Videira - SC



  • Veja também
    Respostas
    ExibiÇões
    Última mensagem


      Voltar para PL/SQL

      Quem está online

      Usuários navegando neste fórum: Bing [Bot] e 6 visitantes