Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Como importar desde un archivo de texto a oracle 10g

Estas en el tema de Como importar desde un archivo de texto a oracle 10g en el foro de Oracle en Foros del Web. Hola En mi maquina tengo instalado el Oracle database 10g XE y necesito crear una interfaz entre un archivo de texto y la base de ...
  #1 (permalink)  
Antiguo 14/01/2008, 16:12
 
Fecha de Ingreso: enero-2008
Mensajes: 32
Antigüedad: 16 años, 11 meses
Puntos: 2
Como importar desde un archivo de texto a oracle 10g

Hola

En mi maquina tengo instalado el Oracle database 10g XE y necesito crear una interfaz entre un archivo de texto y la base de datos en oracle.

El problema es que tengo un software que hace una recopilación de datos y estos datos los almacena en .txt o .xls estoy tratando de desarrollar una base de datos en oracle 10g pero necesito crear una interfaz con dichos archivos para que la info se importe a las tablas en la base de datos, espero que me puedan ayudar se los voy a agradecer mucho.
  #2 (permalink)  
Antiguo 14/01/2008, 21:26
 
Fecha de Ingreso: enero-2008
Mensajes: 29
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Como importar desde un archivo de texto a oracle 10g

Cita:
Iniciado por Destroyer Ver Mensaje
Hola

En mi maquina tengo instalado el Oracle database 10g XE y necesito crear una interfaz entre un archivo de texto y la base de datos en oracle.

El problema es que tengo un software que hace una recopilación de datos y estos datos los almacena en .txt o .xls estoy tratando de desarrollar una base de datos en oracle 10g pero necesito crear una interfaz con dichos archivos para que la info se importe a las tablas en la base de datos, espero que me puedan ayudar se los voy a agradecer mucho.

No te sirve el programa SQL*Loader?
sqlload usuario/palabra_clave CONTROL=fichero_control, DATA=fichero_datos
A mi me funcionó.
  #3 (permalink)  
Antiguo 14/01/2008, 21:35
 
Fecha de Ingreso: enero-2008
Mensajes: 29
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Como importar desde un archivo de texto a oracle 10g

No te sirve el programa SQL*Loader?
sqlload usuario/palabra_clave CONTROL=fichero_control, DATA=fichero_datos
A mi me funcionó.
  #4 (permalink)  
Antiguo 14/01/2008, 23:39
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 9 meses
Puntos: 7
Re: Como importar desde un archivo de texto a oracle 10g

tambien puedes usar utl_file o tablas externas segun sea tu necesidad
__________________
Blogzote.com :-) Mi blog
  #5 (permalink)  
Antiguo 15/01/2008, 08:26
 
Fecha de Ingreso: enero-2008
Mensajes: 32
Antigüedad: 16 años, 11 meses
Puntos: 2
Re: Como importar desde un archivo de texto a oracle 10g

Antes que nada les agradezco por responder a mi pregunta... se me fue por alto decir que aun soy novato en oracle, aún estoy empezando, pero he leido muchos tutoriales y he estado prácticando, le agradezco las soluciones que me han dado, pero podrían decirme como ejecuto estas aplicaciones o en donde?
  #6 (permalink)  
Antiguo 15/01/2008, 09:38
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 6 meses
Puntos: 43
Re: Como importar desde un archivo de texto a oracle 10g

Entra en www.google.es y como criterios de búsqueda pon UTL_FILE y SQL LOADER.

Ya verás como encuentras mogollón de datos sobre estas "aplicaciones"

Ya nos contarás
  #7 (permalink)  
Antiguo 15/01/2008, 09:55
 
Fecha de Ingreso: enero-2008
Mensajes: 32
Antigüedad: 16 años, 11 meses
Puntos: 2
Re: Como importar desde un archivo de texto a oracle 10g

Gracias jc3000 acabo de encontrar un poco de info en google hacerca de utilizar una archivo carga.ctl y mediante el SQL*loader en estos momentos estoy revisando la información encontrada, voy a ver hasta donde puedo llegar con esto y si tengo alguna duda se los comunicare. Gracias!!!
  #8 (permalink)  
Antiguo 15/01/2008, 17:00
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 6 meses
Puntos: 43
Re: Como importar desde un archivo de texto a oracle 10g

Ok, aquí estamos para aclarar tus dudas.
  #9 (permalink)  
Antiguo 22/01/2008, 15:52
 
Fecha de Ingreso: enero-2008
Mensajes: 32
Antigüedad: 16 años, 11 meses
Puntos: 2
Re: Como importar desde un archivo de texto a oracle 10g

Hola a todos, he tenido problemas con el sql loader, me esta dando un error -350 es un error de sintaxis... a parte dice que se ha encontrado palabra clave.

Lo que estoy tratando de hacer es importar los datos que se encuentran en un archivo de texto a una tabla creada en la base de datos... el archivo que contiene los datos esta compuesto por 11 campos, el primer campo es de tipo fecha y el resto son numéricos. La estructura del archivo de control es la siguiente:

LOAD DATA
INFILE '20080101.txt'
APPEND INTO TABLE Trinidad
FIELDS TERMINATED BY'"'
(Date/Time
Temperature [°C]
Global Radiation [W/m²]
Relative Humidity [% RH]
Precipitation [mm]
Wind Speed [km/h]
Leaf Wetness [U]
Wind Direction [°]
Battery Voltage [V]
Incoming RF Level [µV]
Outgoing RF Level [µV]
Solar Cell [])

el archivo de control se llama carga.bat espero sus respuestas... gracias.
  #10 (permalink)  
Antiguo 26/01/2008, 22:33
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 23 años
Puntos: 11
Re: Como importar desde un archivo de texto a oracle 10g

Cita:
Iniciado por Destroyer Ver Mensaje
Hola a todos, he tenido problemas con el sql loader, me esta dando un error -350 es un error de sintaxis... a parte dice que se ha encontrado palabra clave.

Lo que estoy tratando de hacer es importar los datos que se encuentran en un archivo de texto a una tabla creada en la base de datos... el archivo que contiene los datos esta compuesto por 11 campos, el primer campo es de tipo fecha y el resto son numéricos. La estructura del archivo de control es la siguiente:

LOAD DATA
INFILE '20080101.txt'
APPEND INTO TABLE Trinidad
FIELDS TERMINATED BY'"'
(Date/Time
Temperature [°C]
Global Radiation [W/m²]
Relative Humidity [% RH]
Precipitation [mm]
Wind Speed [km/h]
Leaf Wetness [u]
Wind Direction [°]
Battery Voltage [V]
Incoming RF Level [µV]
Outgoing RF Level [µV]
Solar Cell [])

el archivo de control se llama carga.bat espero sus respuestas... gracias.
Pues parece que has errado en la forma de meter la data especificamente; la cabecera la tienes bien... mira en las faqs que por ahi deje esa respuesta para una 9i pero es exactamente lo mismo para una 10g

http://www.forosdelweb.com/255173-post20.html

__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #11 (permalink)  
Antiguo 28/01/2008, 08:17
 
Fecha de Ingreso: enero-2008
Mensajes: 32
Antigüedad: 16 años, 11 meses
Puntos: 2
Re: Como importar desde un archivo de texto a oracle 10g

Antes que nada buen día... gracias por responder, fijate que ya pude solucionar el error anterior pero ahora me encuentro con un nuevo problema, lo que pasa es que el software que recopila la información, guarda los datos ya sea en un archivo de texto o en un archivo de excel, pero este guarda los datos por tiempo con un intervalo de 15 minutos, osea que durante el día recopilo 96 datos, pues cuando trato de importar los datos me dice que hay error en el campo fecha por valores alfanuméricos y que se esperaba un valor numérico, he modificado el archivo de control y la estructura es la siguiente:

LOAD DATA
INFILE '20080101.xls'
APPEND INTO TABLE Trinidad
(FECHA DATE"dd/mm/yyyy HH24:MI:SS",
TEMP,
RAD_SOLAR,
HUM_REL,
PREC,
VEL_VIENTO,
HUM_FOL,
DIR_VIENTO,
BATERIA,
FREQ_ENTRADA,
FREQ_SALIDA,
PANEL_SOLAR)

El archivo de texto donde se encuentran los datos a importar se llama 20080101.xls...
  #12 (permalink)  
Antiguo 30/01/2008, 20:46
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 23 años
Puntos: 11
Re: Como importar desde un archivo de texto a oracle 10g

cuando guardas en excel debes verificar que el formato sea correspondiente al que tienes en tu base de datos oracle configurado... este error se da con los numeros (,.) y fechas (dd/mm/yyy) ya que dependiendo de la configuracion regional y de idioma de cada pc asi los guarda el excel... cosa contraria a Oracle que los guarda en su BBDD.

Si quieres minimizar el problema es importarlos a una tabla plana y tratarlos todos como texto simple; ya en la tabla plana llevarlos con un procedure a la tabla que desees (es decir realizar las validaciones dentro de oracle y no en la importacion).
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #13 (permalink)  
Antiguo 23/09/2008, 07:30
 
Fecha de Ingreso: marzo-2008
Mensajes: 10
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Re: Como importar desde un archivo de texto a oracle 10g

Cita:
Iniciado por Destroyer Ver Mensaje
Antes que nada les agradezco por responder a mi pregunta... se me fue por alto decir que aun soy novato en oracle, aún estoy empezando, pero he leido muchos tutoriales y he estado prácticando, le agradezco las soluciones que me han dado, pero podrían decirme como ejecuto estas aplicaciones o en donde?
Hola que tal, he estado leyendo respecto al tema, y tengo casi que el mismo problema, necesito cargar un archivo plano en la BD de ORACLE, tengo esta sintaxis de prueba que encontré en internet

LOAD DATA
INFILE 'C:\registros.CSV'
BADFILE 'C:\fallos.BAD'
APPEND
INTO TABLE PRUEBA
FIELDS TERMINATED BY ';'
(ANO, MES, COMPANIA, SUC_SUCURSAL, ID_CANAL, PROD_PRODUCTO, PRESU_UND, PRESU_BS, PRESU_KG, TIPO_PRODUCTO)

el problema es que no se donde ejecutar esta sentencia :( estoy muy perdido, lo he probado como sentencia sql, store procedure y funcion, pero nada. No lo puedo ejecutar por consola, puesto que debe ser automático. Alguien me podría indicar como ejecutar esa sentencia???

también he encontrado esta línea...

sqlldr username/password@server control=loader.ctl

pero igual...no se donde ejecutarla :(
  #14 (permalink)  
Antiguo 23/09/2008, 09:54
 
Fecha de Ingreso: enero-2008
Mensajes: 32
Antigüedad: 16 años, 11 meses
Puntos: 2
Respuesta: Como importar desde un archivo de texto a oracle 10g

Hola, con la ayuda que me han brindado en este foro he aprendidos muchas cosas, y por lo menos con el problema que tienes creo que te puedo ayudar, para cargar datos desde un archivo plano a la DB de oracle, lo primero que debes hacer es: la sintaxis de prueba que tienes, la debes de escribir o pegar en un block de notas, luego dale algun nombre y guardalo con extensión .bat, y la linea que has encontrado sqlldr username/password@server control=loader.ctl, te sirve para mandar a ejecutar el archivo .bat que has guardado, esto lo haces desde linea de comandos, pero como el archivo lo has guardado con extensión .bat no es necesario llamarlo desde línea de comandos, sino simplemente puedes ejecutarlo dandole doble clic... espero te sirva....

Última edición por Destroyer; 23/09/2008 a las 10:00
  #15 (permalink)  
Antiguo 23/09/2008, 13:08
 
Fecha de Ingreso: marzo-2008
Mensajes: 10
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Como importar desde un archivo de texto a oracle 10g

hola Destroyer, Gracias por responder tan pronto, la verdad me urge entregar ese requerimiento y el problema de la solución que planteas, es que yo necesito cargar ese archivo automaticamente. De igual forma probé y me aparece "LOAD" no se reconoce como un comando interno o externo, programa o archivo ejecutado por lotes, de igual forma con "INFILE", "BADFILE"...etc

La idea es que desde una aplicación java, se pueda seleccionar el arhivo csv que se desea guardar y que oracle haga el resto. Me dicen que con un procedimiento almacenado se puede, pero pués Oracle no reconoce la palabra LOAD. en "LOAD DATA" Entonces no he tenido exitos al momento de ejecutarlo.

Última edición por fenix086; 23/09/2008 a las 13:54
  #16 (permalink)  
Antiguo 23/09/2008, 20:54
 
Fecha de Ingreso: enero-2008
Mensajes: 32
Antigüedad: 16 años, 11 meses
Puntos: 2
Respuesta: Como importar desde un archivo de texto a oracle 10g

Bueno, pues yo lo he hecho en windows y me ha funcionado, lo primero que debes hacer es crear un archivo de control en donde va la sintaxis:

LOAD DATA
INFILE 'C:\registros.CSV'
BADFILE 'C:\fallos.BAD'
APPEND
INTO TABLE PRUEBA
FIELDS TERMINATED BY ';'
(ANO, MES, COMPANIA, SUC_SUCURSAL, ID_CANAL, PROD_PRODUCTO, PRESU_UND, PRESU_BS, PRESU_KG, TIPO_PRODUCTO)

Esto lo haces en un editor de texto, luego lo guardas con cualquier nombre por ejemplo carga.bat, en INFILE colocas la dirección donde se encuentra tu archivo plano, el BADFILE es donde se van a guardar los registros del archivo plano que no se puedan importar, y para que la importación sea de forma automática lo puedes hacer con el programador de tareas de windows...
  #17 (permalink)  
Antiguo 24/09/2008, 07:34
 
Fecha de Ingreso: marzo-2008
Mensajes: 10
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Como importar desde un archivo de texto a oracle 10g

Mira que asi no me funciona, igual no entiendo algo, en ningún momento yo estoy definiendo la bd Oracle, clave, permisos ni siquiera el nombre de la BD. Y la forma que me dices para generarlo de forma automática, no me funciona, puesto que se debe hacer es al momento de generar un click en la aplicación. No se si me entiendas :( Gracias.
  #18 (permalink)  
Antiguo 24/09/2008, 10:30
 
Fecha de Ingreso: marzo-2008
Mensajes: 10
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Como importar desde un archivo de texto a oracle 10g

Bueno pués después de revisar toda la info que tenía respecto al tema ya conseguí hacer la inserción de los datos desde la consola de windows.
1. Busque el archivo sqlldr, y copie la ruta donde se encontraba el arhivo en la variable path del sistema. C:\oracle\product\10.2.0\db_1\BIN, con el fín que reconociera el comando.

2. Cree un archivo control(fichero_control.ctl), que contiene las instrucciones de insercion:

load data
infile 'c:\archivo.csv'
badfile 'c:\Error Archivos.txt'
append into table I_ARCHIVOADJUNTO
fields terminated by "," optionally enclosed by '"'
(ARCADJ_TIQUET_CODIGO,ARCADJ_RUTA)


3. Cree el archivo.csv.
1,Ruta1
2,Ruta2
3,Ruta3
4,Ruta4
5,Ruta5

4. Ejecute la siguiente línea en la consola de windows(Ejecuta el proceso)

sqlldr USUARIO/CONTRASEÑA CONTROL='C:\fichero_control.ctl', DATA='c:\archivo.csv' direct=true

y listo, funciona :)

pero el problema es que yo lo necestio ejecutar desde una aplicación java y no se como hacer :( alguien me podría indicar??? Tal vez creando una función en oracle o un Store procedure

Última edición por fenix086; 24/09/2008 a las 10:37
  #19 (permalink)  
Antiguo 24/09/2008, 16:02
 
Fecha de Ingreso: enero-2008
Mensajes: 32
Antigüedad: 16 años, 11 meses
Puntos: 2
Respuesta: Como importar desde un archivo de texto a oracle 10g

Bueno pues en Java si me quedo corto, aun no he explorado la programación en Java, pero lo unico que se me ocurre es que el fichero de control lo guardes como .bat y en la aplicación Java lo mandes a ejecutar... espero que encuentres la respuesta...
  #20 (permalink)  
Antiguo 03/10/2008, 13:54
 
Fecha de Ingreso: marzo-2008
Mensajes: 10
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Como importar desde un archivo de texto a oracle 10g

listo, ya conseguí crear dinamicamente los archivos .ctl y .bat, y ejecutar el .bat desde java, pero me queda un último problema, no me genera automáticamente el archivo .log, y si ejecuto esa misma linea por consola, si lo genera.

Alguién sabe por que???, que debo hacer??
  #21 (permalink)  
Antiguo 10/10/2008, 17:58
 
Fecha de Ingreso: octubre-2008
Mensajes: 16
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Como importar desde un archivo de texto a oracle 10g

Amigo fenix086 realizaste una conexion entre java y oracle 10g? la verdad es que soy principiante en esto y no tengo idea de lo que puedo hacer para mandar dos valores ingresados mediante java y almacenarlos en la base de datos, no se si me podrías ayudar por favor te lo agradecería mucho
  #22 (permalink)  
Antiguo 07/11/2008, 12:46
 
Fecha de Ingreso: marzo-2008
Mensajes: 10
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Como importar desde un archivo de texto a oracle 10g

Cita:
Iniciado por haroldadonai Ver Mensaje
Amigo fenix086 realizaste una conexion entre java y oracle 10g? la verdad es que soy principiante en esto y no tengo idea de lo que puedo hacer para mandar dos valores ingresados mediante java y almacenarlos en la base de datos, no se si me podrías ayudar por favor te lo agradecería mucho
pues mira, la verdad tuve que hacer la conexion para obtener el nombre de las columnas de la tabla y asi crear el archivo .ctl. El resto lo maneja el sqlloader, quien se encarga de tomar el csv y cargarlo en la bd. En si, los datos no se cargan desde java, solo se crean los archivos .bat y .ctl y se ejecuta el .bat. Espero te sirva la respuesta un mes despues...
  #23 (permalink)  
Antiguo 09/02/2009, 15:48
 
Fecha de Ingreso: abril-2004
Ubicación: cali
Mensajes: 32
Antigüedad: 20 años, 8 meses
Puntos: 0
Respuesta: Como importar desde un archivo de texto a oracle 10g

con relacion a este tema me gustaria saber como hago para que cuando uno crea el archivo *.CTL (es la descipcion de la tabala a donde seran cargados los datos) una de las columnas sea alimentada por una secuencia

yo estoy realizando lo siguiente me gustaria saber si esta correcto

LOAD DATA
INFILE 'C:\oraclexe\app\oracle\product\10.2.0\server\BIN\ UNO.CSV'
INTO TABLE TI
FIELDS TERMINATED BY ";"
(id,
c_dos,
c_ter,
c_cuatro opc_seq.nextval)
  #24 (permalink)  
Antiguo 17/05/2011, 09:55
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 2
Antigüedad: 16 años, 4 meses
Puntos: 0
De acuerdo Respuesta: Como importar desde un archivo de texto a oracle 10g

Hola muchachos se que no estoy dando respuesta a ninguna de las preguntas. pero aprobecho el foro ya que tengo una duda con respecto al tema.

Tengo un archivo .ctl que hace muy bien l llenado de una tabla de mi base de datos... el problema que tengo es que hay un campo dentro del CTL que viene defectuodo ya en el archivo txt q contiene los datos, necesito que al hacer la carga es decir el LOAD del ctl el valor de ese campo sea corregido desde este archivo de control para no pasarlo errado a la tabla q estoy cargando.

Mi solucion fue : realice una funcion en oracle que recibe como parametro el campo a modificar e hice muchas pruebas con valores y la funcion esta muy bien hecha...

Ahora como hago para llamar esa funcion dentro del mismo archivo ctl? lo que quiero es que sea ejecutada en el CTL .. para que se modifique antes del llenado de la tabla (la importacion en oracle)....

Espero puedan ayudarme....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 4 personas




La zona horaria es GMT -6. Ahora son las 06:26.