https://es.stackoverflow.com/questions/142753/como-se-genera-un-script-de-introduccion-de-datos-en-o

esta duda me viene al pasar de mysql a oracle. En MySQL existe la opción de aplicar la siguiente sintaxis:

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [PARTITION (partition_name [, partition_name] ...)]
    [CHARACTER SET charset_name]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number {LINES | ROWS}]
    [(col_name_or_user_var
        [, col_name_or_user_var] ...)]
    [SET col_name={expr | DEFAULT},
        [, col_name={expr | DEFAULT}] ...]

Sin embargo en oracle no veo la forma de hacerlo desde el script y todo lo que veo parece orientado a usar las propias herramientas de sql developer o sql loader. Por un lado las herramientas de SQL developer están muy bien pero por motivos lectivos no puedo andar haciendo la inserción de datos tabla por tabla cada vez que la cago y quiero reiniciar la base de datos(7 tablas con mas de 100 registros cada una). Mientras que usar sql loader parece implicar hacer una llamada a un programa externo, una preparación de archivos para fallos, logs etc... y lo único que quiero es ejecutar un simple script como hacia en MySQL.

Otra cosa que he intentado probar es, mediante la herramienta de importación de developer es generar scripts tabla por tabla y llamarlos desde otro script, pero tampoco consigo saber el modo de hacerlo de forma correcta(o no he adquirido los conocimientos necesarios aun, por eso os pregunto).

Alguna pista?
¿Qué versión de Oracle utilizas?

Con una búsqueda sencilla:
https://stackoverflow.com/questions/895 ... -in-oracle
https://docs.oracle.com/cd/E17952_01/my ... -data.html

No sé si te servirá.
No estaría demás poner un titulo del estilo de Generar Script de introducción de datos en Oracle XX XD

Saludos ;)
Newton escribió:¿Qué versión de Oracle utilizas?

Con una búsqueda sencilla:
https://stackoverflow.com/questions/895 ... -in-oracle
https://docs.oracle.com/cd/E17952_01/my ... -data.html

No sé si te servirá.
No estaría demás poner un titulo del estilo de Generar Script de introducción de datos en Oracle XX XD

Saludos ;)

11g XE
Para entendernos, la gratuita, la experess edition.

Lo del titulo mando una peticion ahora en cuanto pueda a un moderador...
y ahora me miro tus enlaces porque en stack overflow tambien he preguntado ya que no encontraba nada.(o no funcionaba)

EDIT: el segundo enlace que me pones, es de donde saque la sintaxis para MySQL, lo poner claro arriba, no sirve para oracle. y en el primero dice exactamente lo que he comentado, requiere la preparación aparte de archivos. lo que busco es la importación desde cualquier tipo de documento y adaptar el script(no el documento) segun la necesidad del documento, es decir, lo que hace sqlloader sin llamarlo... lo que hace de serie MySQL.

asi que no me sirve :(

PD: que igual es imposible lo que pido, pero aun no me he encontrado el sitio que diga que no se puede.
Pero a ver, que quieres hacer?

Exportar los datos de una tabla a un formato concreto o quieres importar datos de un fichero a una tabla?

Por que si lo que quieres es cargar un fichero en una tabla, tienes dos opciones:

Crear un STORED PROCEDURE al que le pases la ruta del fichero y te lo lea e inserte, u opcion 2, usar SQL*LOADER, que es otra herramienta que tienen las bases de datos de oracle.

https://docs.oracle.com/cd/B19306_01/se ... ncepts.htm
Delian escribió:Pero a ver, que quieres hacer?

Exportar los datos de una tabla a un formato concreto o quieres importar datos de un fichero a una tabla?

Por que si lo que quieres es cargar un fichero en una tabla, tienes dos opciones:

Crear un STORED PROCEDURE al que le pases la ruta del fichero y te lo lea e inserte, u opcion 2, usar SQL*LOADER, que es otra herramienta que tienen las bases de datos de oracle.

https://docs.oracle.com/cd/B19306_01/se ... ncepts.htm

Importar datos a las tablas. Lo que he visto del SQL LOADER me parece darle muchas vueltas para algo que se podia hcer de forma tan sencilla en MySQL y lo del stored procedure huele a Plsql? eso me lo voy a mirar bien.

No obstante no os frustreis conmigo, estoy en pleno periodo de aprendizaje y es mas que probable que todas estas dudas las despeje en no mucho tiempo, pero soy curioso por naturaleza y me intriga
SQL Loader es para cargar datos de un fichero a una tabla, le puedes decir si es por posicionamiento o si son campos delimitados por un caracter. Obviamente, tienes que decirle que campo es cada cosa, que tipo de dato es y que campo de la tabla lo va a insertar, no lo recuerdo especialmente complicado.
Delian escribió:SQL Loader es para cargar datos de un fichero a una tabla, le puedes decir si es por posicionamiento o si son campos delimitados por un caracter. Obviamente, tienes que decirle que campo es cada cosa, que tipo de dato es y que campo de la tabla lo va a insertar, no lo recuerdo especialmente complicado.

Al final me he rendido, teniendo sql loader es mejor que complicarse haciendo un script, pero me da un poco de rabia, MariaDB y MySQL al menos tienen la posibilidad de hacerse desde el mismo query, shell, llamalo X, sin tener que acudir a programas externos... vamos que viene soportado por el propio servidor.(no?)

Gracias señores!!
SQL*LOADER no es un "programa externo", viene con la instalación de Oracle. MariaDB y MySQL lo tendran integrado en el lenguaje de Querys, al final viene hacer lo mismo, solo cambia la manera.

Por cierto, SQL*LOADER cuadno una linea falla te la vuelca en un fichero a parte con extension .bad, para que te sea facil ver los errores, ¿Eso lo hacen los otros dos? XD
7 respuestas