Error Sql*loader tratando de bajar automáticamente unos datos que se encuentran en un archivo de una máquina remota

Estoy tratando de bajar automáticamente unos datos que se encuentran en un archivo .txt que está en una máquina remota a la cual me estoy conectando vía FTP y cargarlos en una tabla de una base de datos oracle 8.0, el archivo carga. Ctl que cree es:
LOAD DATA
INFILE 'ftp:200.44.44.177 userid=user/pasword_del_FTP datosMovilnet.txt'
APPEND
INTO TABLE scan(
Num SEQUENCE(COUNT, 1),
nombre POSITION(01:01) CHAR,
fecha POSITION(02:02) INTEGER EXTERNAL,
dato1 POSITION(03:03) INTEGER EXTERNAL,
dato2 POSITION(04:04) INTEGER EXTERNAL)
***nota:linea en blanco***
al establecer la conexión con SQL*LOADER mediante el comando: D:\orant\BIN>sqlldr80 userid=user/pasword_base_de_dato, control=carga.ctl, direct=true
muestra la siguiente respuesta:
SQL*Loader: Release 8.0.5.0.0 - Production on Wed Jul 16 9:0:7 2003
(c) Copyright 1998 Oracle Corporation. All rights reserved.
ORA-12203: TNS:unable to connect to destination
SQL*Loader-704: Internal error: ulconnect: OCIServerAttach [-1]
quisiera saber cómo puedo configurar el archivo carga.ctl para corregir este error, creo que la falla está en el código de conexión con el archivo fuente INFILE 'ftp:200.44.44.177 userid=user/pasword_del_FTP datosMovilnet.txt'

1 Respuesta

Respuesta
1
Primero debes chequear que tengas una conexión exitosa a la bd, al conectarte debe ser así:
sqlldr80 userid=user/pasword@base_datos;
Verifica escríbeme y me cuentas
[email protected]
Muchas gracias, ya pude resolver el problema, pero ahora necesito programar el archivo .ctl de manera tal que cada línea del fichero ingrese sus datos (y solo los datos que necesito) en una tabla diferente, y que realice la carga (la función sqlldr80) a cada 5 minutos automáticamente, nuevamente gracias por tu ayuda
Primer punto.
El archivo ctl no lo puedes programar, pero el genera un bad con los registros rechazados con lo cual verificarías que cargaron todos ahora, si lo que necesitas es un log hay dos formas de hacerlo una es por un trigger que la tabla que cada vez que insertes actualice una tabla donde lleves un log, la segunda es no usar sqlldr80 y usar utl_file (personalmente me gusta más) ya que permite el control de las lineas cargadas.
Segundo punto.
Perdón, pero creo que no te entendí muy bien, ¿necesitas qué esa carga se haga cada 5 min?.
Si es así dependiendo del sistema operativo lo programarías en autosys (si es unix), cron (si es linux) o programados de tareas si es windows.
Recuerda por favor cerrar la pregunta y si tienes más crea una nueva (así gano más puntos)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas