Oracle - Leer archivo .txt en PL SQL

 
Vista:
sin imagen de perfil
Val: 1
Ha aumentado su posición en 23 puestos en Oracle (en relación al último mes)
Gráfica de Oracle

Leer archivo .txt en PL SQL

Publicado por dana (1 intervención) el 14/02/2020 22:08:42
Hola estoy como hago para realizar lectura de un archivo plano .txt en oracle.

quiero hacer lectura pero no esta delimitado por ningún caracter, viene todo unido en el archivo.

y hay campos que traen ceros (0) de mas, ya sea a la posicion de la derecha o izquierda, también tendría que quitarle esos ceros para poder guardarlos a futuro en un tabla que debo crear.

por ahora mi duda surge en la lectura del archivo.

el archivo viene algo asi:

'12209110108000000060400620694020000000004PES0000000000000000000000100002520440000100000547040000000000010000000000000000000000000000000000000000000000000000010571000000001801102019'
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Leer archivo .txt en PL SQL

Publicado por Carlos (1 intervención) el 26/09/2022 20:12:46
Puedes usar : utl_file.get_line, estraes una linea y la vas evaluando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Leer archivo .txt en PL SQL

Publicado por Alixandro (6 intervenciones) el 13/03/2025 14:12:41
Hay varias formas en oracle para leer archivos de textos. A nivel de base de datos (utl_file, oracle loader, tabla externa (es el oracle loader mas avanzado), estos requieren de un directorio a nivel de base de datos que apunte a un directorio fisico en el servidor donde residela BD. A nivel local en la PC, puedes usar TEXT_IO o CLIENT_TEXT_IO. para cuales quieras de las opciones, los archivos deben tener algun tipo de delimitador, si no los tiene, debes conocer las posiciones para los valores de las columnas. Te recomiendo buscar informacion (que hay bastantes) en sangoogle. es facil de entenderlo. para la lectura via TEXT_IO puedes ayudarte creando un funsion split donde le pase la cadena y la posicion que quieres leer.

Ejemplo para crear el directorio a nivel de BD.

CREATE DIRECTORY mi_directorio AS '/ruta/directorio';

Luego, otorgamos permisos de lectura y escritura a los usuarios que utilizarán la tabla externa:

GRANT READ, WRITE ON DIRECTORY mi_directorio TO usuario;

Ejemplo de la tabla externa (hay diferentes modalidad de lectura para la tabla externa indicado mediante el TYPE)

CREATE TABLE productos_ext (
id NUMBER,
nombre VARCHAR2(50),
precio NUMBER,
categoria VARCHAR2(50)
)
ORGANIZATION EXTERNAL (
TYPE oracle_loader
DEFAULT DIRECTORY mi_directorio
ACCESS PARAMETERS (
RECORDS DELIMITED BY NEWLINE
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
MISSING FIELD VALUES ARE NULL
)
LOCATION ('productos.csv')
)
REJECT LIMIT UNLIMITED;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar