Oracle - Ejecutar script dentro de plsql

 
Vista:

Ejecutar script dentro de plsql

Publicado por juan (2 intervenciones) el 16/08/2001 12:47:41
Hola, tengo un problema con un procedimiento en plsql :

Tengo un script que desde SQL*Plus se ejecuta perfecto, realizando la llamada así :

SQL> @d:\fichero.sql

pero cuando quiero ejecutar dicho script dentro de un procedimiento en pl/sql, el SQL*Plus me devuelve el siguiente error :

ORA-00900: invalid SQL statement

la llamada dentro de mi procedure es la siguiente :

execute immediate '@d:\fichero.sql';

Alguien tiene alguna idea sobre cómo realizar la llamada dentro del plsql?

Gracias de antemano.
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

RE:Ejecutar script dentro de plsql

Publicado por Ken (115 intervenciones) el 17/08/2001 03:52:04
Pasa que tu metodo es ortodoxo, para eso existen los Stored Procedures, son mas rapidos de ejecutar y tienes mayor control
Saludos
Ken Fernando
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

RE:Ejecutar script dentro de plsql

Publicado por juan (2 intervenciones) el 17/08/2001 08:51:24
Me explico: he realizado un menú de opciones para automatizar la creación de tablas, claves primarias, claves externas, índices, etc de una base de datos. La idea es según las opciones que el usuario escoja llamar a uno u otro de los scripts que me realizan la tarea correspondiente.
Me gustaría poder llamar a uno de mis scripts desde mi stored procedure (que está dentro de un package), puesto que no es nada flexible ni elegante tener que realizar las llamadas de creación de tablas, claves, indices, etc dentro del código de mi stored procedure.

Alguien tiene alguna idea sobre cómo realizar dicha llamada?

Gracias de antemano.
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

RE:Ejecutar script dentro de plsql

Publicado por Ken (115 intervenciones) el 19/08/2001 19:16:24
Sigo pensando q es ortodoxo pero...

- Los scripts los guardarias en el servidor donde esta tu base de datos.
- Puedes definir un procedimiento para que llame aun ejecutable en el servidor.
- Configurar el Listener para poder escuchar procedimientos externos.
- Desde tu procedimiento hacer una llamada al procedimiento que llama al ejecutable ( me supongo que como varia el script por cada seleccion tendras q usar sql dinamico )
- Y la forma de llamarlo seria : ejem.
pr_externo( ' sqlplus usuario/password@sid @/scripts/script1.sql ' );
osea Invocando al sqlplus o svrmgrl para q ejecute tu script

---------
Otra forma seria utilizar el paquete UTL_FILE
- Abres el archivo de texto donde estan tus sentencias del directorio definido en el parametro init.ora UTL_FILE_DIR
- Por un loop vas ejecutando dinamicamente las sentencias almacenadas en el archivo.

Saludos
Ken Fernando
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

RE:Ejecutar script dentro de plsql

Publicado por JFSD (50 intervenciones) el 17/08/2001 17:06:37
Si tienes un SCRIPT (PlSql), pues integra tu script al PLSQL
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