Pulse para guardar enlace y compartir esta web. Ayuda para Oracle en Twitter Pulse para guardar enlace y compartir esta web. Ayuda para Oracle en Facebook Pulse para guardar enlace y compartir esta web. Búscanos en Google+ Pulse para guardar enlace y compartir esta web Pulse para generar codigo QR del enlace y compartir esta web

EXECUTE IMMEDIATE

Ejecuta una setencia SQL dinamica, es decir definida dentro de una cadena.

Tambien funciona con un bloque PL/SQL.



   EXECUTE IMMEDIATE cadena_sql
      [INTO {variable1,... | INTO registro}]
         [USING [IN|OUT|IN OUT] bind_arg,...]
         [RETURN[ING] INTO bind_arg,...];

cadena_sql: Es la variable con la cadena SQL o con el bloque PL/SQL.

Si "cadena_sql" termina en ';', se tratará como un bloque PL/SQL, en otro caso se trataran como sentencias DML (SELECT,INSERT,...) o DDL (CREATE TABLE,..).

variable1, variable2: Una variable por cada columna de respuesta de la cadena_sql.

registro: Variable de tipo registro que recibe la fila completa (TYPE o %ROWTYPE)

USING: Sirve para pasar parámetros a las sentencias. bind_arg: son variables o expresiones que contienen los parámetros de la sentencia.

Cuando se ejecuta la sentencia, se reemplaza cada variable en la sentencia sql (un identificador con dos puntos delante, como :inicio) por su correspondiente valor según su posición.

Se pueden pasar numeros, fechas y cadenas.

No se pueden pasar booleanos o literales de NULL pero si se puede pasar una variable a nulo con el tipo de dato adecuado.

No se puede usar EXECUTE IMMEDIATE para consultas de multiples filas. Solo podemos recoger una.