UTL_FILE.FOPEN

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
cleberz
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 107
Registrado em: Ter, 15 Nov 2011 8:42 am

Boa tarde. Eu criei um diretorio da seguinte forma:

CREATE DIRECTORY user_dir AS 'c:/tmp';


Quando eu executo a procedure dessa forma funciona:


PROCEDURE file_action
IS
fileID UTL_FILE.FILE_TYPE;
BEGIN
fileID := UTL_FILE.FOPEN ('c:/tmp', 'lotsa.stf', 'R');
UTL_FILE.PUT_LINE (fileID, 'just the beginning');
UTL_FILE.FCLOSE (fileID);
END;


Quando eu executo a procedure dessa forma NÃO funciona:

AQUI EU NÃO PASSO O CAMINHO COMPLETO DO DIRETOPRIO. EU PASSO O DIRECTORY_NAME

PROCEDURE file_action
IS
fileID UTL_FILE.FILE_TYPE;
BEGIN
fileID := UTL_FILE.FOPEN (user_dir, 'lotsa.stf', 'R');
UTL_FILE.PUT_LINE (fileID, 'just the beginning');
UTL_FILE.FCLOSE (fileID);
END;
cleberz
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 107
Registrado em: Ter, 15 Nov 2011 8:42 am

Tem que passar o caminho todo. Se passar só o nome do diretorio criado não funciona.
Avatar do usuário
bessa_lucas
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 55
Registrado em: Sex, 17 Out 2014 3:02 pm
Lucas Bessa
Analista de Sistemas

lucas.bessa@obers.com.br
lucas.bessa.ti@gmail.com

Eu normalmente faço um select para pegar o diretório

Selecionar tudo

    -- VALIDA O CAMINHO DO DIRETORIO INTEGRACAO_FABRICA_ORDEM
    BEGIN
      select DIRECTORY_PATH
      into X_DIRETORIO
      from ALL_DIRECTORIES
      where DIRECTORY_NAME = 'INTEGRACAO_FABRICA_ORDEM';
      EXCEPTION
            WHEN no_data_found THEN
              RAISE_APPLICATION_ERROR(-20000, 'DIRETORIO NÃO EXISTE');
    END;
Responder
  • Informação
  • Quem está online

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