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;
UTL_FILE.FOPEN
Tem que passar o caminho todo. Se passar só o nome do diretorio criado não funciona.
- bessa_lucas
- 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
Analista de Sistemas
lucas.bessa@obers.com.br
lucas.bessa.ti@gmail.com
Eu normalmente faço um select para pegar o diretório
-- 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;
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Bing [Bot] e 1 visitante