sql >> Base de Datos >  >> RDS >> Oracle

Cómo resolver ORA-29280:ruta de directorio no válida

ORA-29280:la ruta de directorio no válida es un error común al realizar operaciones de manejo de archivos en la base de datos de Oracle

Motivo y Resolución del error

(1) Esto ocurre si el directorio especificado no existe en el parámetro utl_file_dir init.ora

sqlplus / as sysdba

show parameter utl_file_dir

/tmp, /usr/tmp/

SQL> declare
F_LOG utl_file.file_type;
begin
F_LOG := utl_file.fopen('/u500','j', 'w');
end;
/ 2 3 4 5 6
declare
*
ERROR at line 1:
ORA-29280: invalid directory path
ORA-06512: at "SYS.UTL_FILE", line 41
ORA-06512: at "SYS.UTL_FILE", line 478
ORA-06512: at line 4

Resoluciones

una. Cambie el directorio que está definido en UTL_FILE_DIR

b. Si no se puede cambiar el directorio y tenemos que usar el mismo código, necesitaremos agregar el directorio en UTL_FILE_DIr

Los pasos serían el primer cambio en spfile, luego reciclar la base de datos Oracle y luego verificar

sqlplus / as sysdba

alter system set utl_file_dir='/tmp/','/usr/tmp','/u500'  scope =spfile;

shutdown immediate

startup

SQL> declare
F_LOG utl_file.file_type;
begin
F_LOG := utl_file.fopen('/u500','y', 'w');
end;
/
2 3 4 5 6
PL/SQL procedure successfully completed.

C. Si podemos cambiar el código, podemos comenzar a usar los directorios de Oracle. En ese caso, no necesitamos especificar utl_file_dir

SQL> create directory TESTDIR as '/u500';
 
SQL> grant read,write on directory TESTDIR to public;

SQL> declare
F_LOG  utl_file.file_type;
begin
F_LOG := utl_file.fopen('TESTDIR','y', 'w');
end;
/
  
PL/SQL procedure successfully completed.

2. Especifica el nombre de directorio de Oracle incorrecto

SQL> declare
F_LOG utl_file.file_type;
begin 2
F_LOG := utl_file.fopen('TESTDIR','y', 'w');
end;
3 4 5 6 /
declare
*
ERROR at line 1:
ORA-29280: invalid directory path
ORA-06512: at "SYS.UTL_FILE", line 41
ORA-06512: at "SYS.UTL_FILE", line 478
ORA-06512: at line 4

SQL> select * from dba_directories where DIRECTORY_NAME='TESTDIR';

no rows selected

Resoluciones

Especifique el nombre de directorio correcto o cree uno nuevo

SQL> create directory TESTDIR as '/u500';
 
SQL> grant read,write on directory TESTDIR to public;

SQL> declare
F_LOG  utl_file.file_type;
begin
F_LOG := utl_file.fopen('TESTDIR','y', 'w');
end;
/
  2    3    4    5    6
PL/SQL procedure successfully completed.

Espero que les guste la explicación detallada del error ORA-29280. Por favor, haga clic en Me gusta y envíe sus comentarios

Artículos relacionados

ORA-29283:operación de archivo no válida:consulte esta publicación sobre cómo resolver ORA-29283:operación de archivo no válida. Qué permiso debe verificarse
ORA-29285:error de escritura de archivo:ORA-29285:el error de escritura de archivo es el error común al realizar la operación de manejo de archivos. Consulte esta publicación sobre varios motivos y soluciones sobre cómo resolverlo
ORA-01652:no se puede extender el segmento temporal:error ORA-01652 generalmente porque cuando el espacio de tabla no tiene espacio libre en el espacio de tabla permanente y temporal en la base de datos de Oracle
ORA-00936 expresión faltante:Aprenda a solucionar problemas ORA-00936 expresión faltante en Oracle SQL. ¿Cuáles son varias soluciones? ¿Cómo podemos evitarlo? Errores de Oracle para estos errores
ORA-00257:error del archivador. Conecte solo internamente, hasta que se libere. :Obtenga información sobre cómo solucionar el error del archivador ORA-00257. Conectar solo error interno. Varias resoluciones y ejemplos proporcionados paso a paso.
ORA-00904:esta publicación para la descripción y posibles soluciones de ORA-00904:identificador no válido. También se proporcionan consejos para la solución de problemas
FND_FILE en aplicaciones de Oracle
https://docs.oracle.com/database/121/ARPLS/u_file.htm