Necesito importar unos datos que se encuentran en un archivo (puede ser texto o excel); a una tabla en Oracle. Y no sè como hacer esto.

Les agradezco mucho su ayuda.
Saludos
| |||
![]() Hola a todos; quisiera pedirles que me ayuden en lo siguiente : Necesito importar unos datos que se encuentran en un archivo (puede ser texto o excel); a una tabla en Oracle. Y no sè como hacer esto. ![]() Les agradezco mucho su ayuda. Saludos |
| ||||
en cualquier carpeta de tu Pc que tenga; lo importante es que tengas el path al sqlldr ![]()
__________________ Bien se puede recibir una puñalada sin adulación, pero rara vez se recibe una adulación sin puñalada ** *** |
| |||
Re: Importar datos a Tabla Oracle Subo este tópic. Cita: Hola, tengo el mismo problema que resolver. Considero muy útil dicho código.
Iniciado por Linterns ![]() LOAD DATA INFILE * INTO TABLE aqui_la_tabla APPEND FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED '"' TRAILING NULLCOLS (nombre, apellido, nacimiento date(10) 'MM/DD/YYYY') BEGINDATA JUAN JOSE|MENDEZ|15/08/1970 MARIA|HERNANDEZ|30/06/1945 EN DONDE: Aqui_la_tabla: es la tabla donde deseas importar los datos. nombre,apellido, nacimiento: los campos que vas a insertar. este archivo lo guardas con una extension CTL y luego desde <oracle_home>bin tecleas lo siguiente: sqlldr miusuario/mipasword@mibase personas.ctl rows=10 errors=30000 en donde: miusuario: Usuario de la Instancia mipassword: Password asignado mibase: Nombre de la base de Datos que estas utilizando personas.ctl: nombre que le diste al archivo que antes era .txt rows=10 : Significa que cada 10 registros ira haciendo COMMIT errors=30000 : Significa el numero de errores que te puede soportar Esto te generara dos archivos... uno .log y uno .bad ... El primero te muestra si se migraron bien o no los datos y el segundo te muestra los archivos que no fueron insertados en la base de datos y te muestra ademas cual fue el error. NOTA: En este caso los archivos los tengo separados por "|"... si tu los tienes separados por "," o por un tabulador u otro caracter especial tienes que decirle en la parte FIELDS TERMINATED BY '|' OPTIONALLY Pero me gustaría saber cuál sería la mejor forma para realizar dichas acciones (y si a día de hoy no habrá cambiado en nuevas versiones del Oracle), a través de una aplicación web asp.net. Me imagino que la primera parte seguiría igual, ¿pero y la segunda? ¿Tendría que ejecutar el <oracle_home>bin? ¿No se puede realizar desde sentencias SQL? En resumen, lo que quiero es importar unas tablas (que vendrán en formato texto) a Oracle, y que lo haga una aplicación web conectada a la base de datos: ¿no se puede cargar directamente sin crear el fichero de control?. Ignoro si dichas sentencias se pueden utilizar sin más para mi propósito, o si con el paso del tiempo (han pasado ya dos años desde que se abrió este tópic) ha cambiado algo. Un saludo y gracias Última edición por un_tio; 03/04/2007 a las 05:07 |
| ||||
Re: Importar datos a Tabla Oracle La forma de importar y exportar sigue siendo la misma; y no es necesario que te pongas en el oracle_home\bin precisamente lo que si es que el la ruta (path) se encuentre dicho subdirectorio. Si quieres obviar el log definitivamente lo puedes hacer aunque no es recomendable ya que es una forma de ver si la data se importo o no correctamente. A traves de PHP, ASP u algun otro aplicativo tambien puedes importar data aunque por mi parte no lo recomiendo ya que no te queda una constancia exacta de las transacciones realizadas. Dichos metodos son realmente creados por los usuarios realizando insert directamente a las tablas ![]()
__________________ Bien se puede recibir una puñalada sin adulación, pero rara vez se recibe una adulación sin puñalada ** *** |
| |||
Re: Importar datos a Tabla Oracle Ok, gracias. Quedaría otro tema: ¿Y si quieres realizar una "adaptación" de los datos antes de introducirlos en tu tabla? Es decir, que no sea una importación directa, sino que a lo mejor quieras antes, por ejemplo, añadir 0's delante a determinados datos o transformar en números otros. ¿Cuál sería el mejor método (resumiendo: para importar datos de un fichero a Oracle, pasando por una transformación a algunas de sus columnas)? Se me ocurre realizar una carga con el método del sql loader, y meterlo en una tabla temporal, para de ahí, mediante pl/sql o desde el aplicativo web (asp.net), reinsertarlo en la tabla en la que deba ir. ¿Es éste el mejor método? Gracias, saludos. |
| ||||
Re: Importar datos a Tabla Oracle olvidate de complicarte la vida con algo tan sencillo, utiliza una tabla externa, aqui checa como se realizan http://www.blogzote.com/2007/01/15/t...nas-en-oracle/
__________________ |
| |||
Re: Importar datos a Tabla Oracle Hola, He leído todos los comentarios y creía que lo tenía, pero resulta que no se me guarda nada en la tabla, sino que se me van todos al .bad...a qué se debe?? Mi código es el siguiente: load data infile 'derivado_interes_hipotetico.txt' into table derivado_interes_hipotetico fields terminated by ";" optionally enclosed by '"' (ID_DERIVADO_IH,ID_RELACION_C,NOMINAL_IH,FECHA_INI CIO_IH,FECHA_FIN_IH,INDICE,REVISION,LIQUIDACION,AM ORTIZACION_IH) Y tengo este archivo .ctl guardado en el bin, al igual que el .txt ¿Alguien puede ayudarme? Por cierto, tb traté de poner INFILE * pero el error era el mismo... MUCHAS GRACIAS!!! Antonio. |
| |||
Re: Importar datos a Tabla Oracle Que es lo que aparece en el .log ? Copia por favor el contenido aqui. Y por seguridad, pon la ruta entera en el infile .... '/../../derivado_interes_hipotetico.txt' y cuando ejecutes el sqlldr has lo mismo para el file de control. sqlldr USERID=scott/tiger CONTROL=/../../ubic_file_control |