Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como resolver ORA-29280:caminho de diretório inválido


ORA-29280:caminho de diretório inválido é um erro comum ao realizar operações de manipulação de arquivos no banco de dados Oracle

Motivo e resolução do erro


(1) Isso ocorre se o diretório especificado não existir no parâmetro utl_file_dir init.ora
sqlplus / as sysdbashow parâmetro utl_file_dir/tmp, /usr/tmp/SQL> declareF_LOG utl_file.file_type;beginF_LOG :=utl_file.fopen('/u500','j', 'w');end;/ 2 3 4 5 6declare*ERROR na linha 1:ORA-29280:diretório inválido pathORA-06512:em "SYS.UTL_FILE", linha 41ORA-06512:em "SYS.UTL_FILE", linha 478ORA-06512:na linha 4

Resoluções

uma. Altere o diretório definido em UTL_FILE_DIR

b. Se o diretório não puder ser alterado e tivermos que usar o mesmo código, precisaremos adicionar o diretório em UTL_FILE_DIr

As etapas seriam a primeira alteração no spfile, depois reciclar o banco de dados oracle e depois verificar
sqlplus / as sysdbaalter system set utl_file_dir='/tmp/','/usr/tmp','/u500'  scope =spfile;shutdown instantstartupSQL> declareF_LOG utl_file.file_type;beginF_LOG :=utl_file.fopen('/u500 ','y', 'w');end;/2 3 4 5 6PL/SQL procedimento concluído com sucesso.

c. Se pudermos alterar o código, podemos começar a usar diretórios oracle. Nesse caso, não precisamos especificar utl_file_dir
SQL> cria o diretório TESTDIR como '/u500'; SQL> concede leitura, gravação no diretório TESTDIR para public;SQL> declareF_LOG utl_file.file_type;beginF_LOG :=utl_file.fopen('TESTDIR','y', 'w');end;/procedimento PL/SQL concluído com sucesso. 
2. Você especifica o nome do diretório oracle errado nele
SQL> declareF_LOG utl_file.file_type;begin 2F_LOG :=utl_file.fopen('TESTDIR','y', 'w');end;3 4 5 6 /declare*ERROR na linha 1:ORA-29280:invalid diretório pathORA-06512:em "SYS.UTL_FILE", linha 41ORA-06512:em "SYS.UTL_FILE", linha 478ORA-06512:na linha 4SQL> selecione * from dba_directories where DIRECTORY_NAME='TESTDIR';nenhuma linha selecionada

Resoluções

Especifique o nome de diretório correto ou crie um novo
SQL> cria o diretório TESTDIR como '/u500'; SQL> concede leitura, gravação no diretório TESTDIR para public;SQL> declareF_LOG utl_file.file_type;beginF_LOG :=utl_file.fopen('TESTDIR','y', 'w');end;/ 2 3 4 5 6PL/SQL procedure concluído com sucesso.

Espero que você goste da explicação detalhada do erro ORA-29280. Curta e dê o feedback

Artigos relacionados

ORA-29283:operação de arquivo inválido:confira este post sobre como resolver ORA-29283:operação de arquivo inválido. Qual permissão precisa ser verificada
ORA-29285:erro de gravação de arquivo :ORA-29285:erro de gravação de arquivo é o erro comum ao fazer a operação de manipulação de arquivos. Confira este post sobre vários motivos e soluções sobre como resolvê-lo
ORA-01652:incapaz de estender o segmento temporário :ORA-01652 erro geralmente porque quando o tablespace não tem espaço livre no tablespace Permanente e Temporário no banco de dados oracle
ORA-00936 expressão ausente:Aprenda a solucionar problemas ORA-00936 expressão ausente no Oracle SQL. Quais são várias soluções, como podemos evitá-lo, erros do Oracle para esses erros
ORA-00257:erro do arquivador. Conecte apenas interno, até que seja liberado. :Saiba como solucionar o erro do arquivador ORA-00257. Conectar apenas erro interno. Várias resoluções e exemplos fornecidos passo a passo.
ORA-00904 :Este post para a descrição e possíveis soluções de ORA-00904:identificador inválido. dicas de solução de problemas também são fornecidas
FND_FILE em aplicativos Oracle
https://docs.oracle.com/database/121/ARPLS/u_file.htm