Pasar a una tabla un archivo de texto

Quiero pasar un archivo de texto a una tabla de Oracle.
¿Es posible mediante el paquete UTL_FILE?
Me da un error "Read Error" que si no me equivoco es generado por Get_line y producido por un error del sistema operativo durante una operación de lectura pero no se como eliminar el error.

1 Respuesta

Respuesta
1
Parece que el error lo puedes tratar con una exception para saber por donde van los tiros.
Programa exceptions de lo siguiente:
UTL_FILE.INVALID_PATH
UTL_FILE.INVALID_MODE
UTL_FILE.INVALID_OPERATION
UTL_FILE.INTERNAL_ERROR
Bien una vez que le incorpores estas excepciones a tu programita, sabremos seguramente por donde falla. Que puede ser por que no encuentra el fichero, porque no tienes permisos para lectura del directorio donde esta el fichero, por que no está abierto el fichero, o porque es erróneo... esta vacío, o tiene lineas demasiado largas para el GET_LINE... un millón de cosas pueden ser.
De todos modos y para ir eliminando errores, te voy a escribir el formato del GET_LINE, por si hubiese algún error ahí:
PROCEDURE GET_LINE(descriptor_archivo IN FILE_TYPE, buffer OUT VARCHAR2);
Necesitaría para saber que falla que me envíes también el programita que usas, para ver como lo haces y que compruebes tus permisos en los directorios.
Ten en cuenta que puedes usar también, en caso que la información la vayas a meter en una base de datos oracle, que puedes usar la herramienta de carga masiva SQL_LOADER, que resulta una herrammienta muy interesante para este tipo de operaciones.
Muchas gracias.
Esta mañana he solucionado el problema.
Después de escribirte me ejecutaba el procedimiento pero no me insertaba los registros en la tabla (se soluciono cambiando el asterisco del UTL_FILE_DIR por la ruta donde se encontraba el archivo) había leído que el asterisco valía para cualquier directorio, pero en este caso no ha sido así).
Esta mañana después de hacer varias prueba puede comprobar que me insertaba todos los campos menos el de tipo date.
Al final lo solucione.
Muchas gracias por la contestación
Un abrazo.
Pilar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas