ORACLE SQLPLUS - EXECUTE IMMEDIATE

google bookmarks delicious yahoo digg technorati meneame live IExplorer bookmarks rss
Más vistos:
  1. CREATE INDEX
  2. DECODE
  3. TO_CHAR
  4. TO_DATE
  5. SELECT
  6. GRANT
  7. INSERT
  8. TUNNING
  9. UPDATE
  10. CREATE USER

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.


Explicación de la sintaxis utilizada para los comandos:
Las palabras en mayusculas son comandos de oracle.
Las palabras en minusculas son opiones modificables
Las partes enmarcadas con [] son opcionales
Las palabras en negrita son las opciones por defecto
Las partes enmarcadas con {} son alternativas (una u otra).
El simbolo | indica OR