Programmazione
Asp
Asp.NET
Java
Javascript
Php
Oracle

Svaghi
Ascolta Radio
Faccine
Libri
Links

Varie
Cerca nel sito...
Segnalazioni
Scrivimi


Comando EXECUTE IMMEDIATE

A partire da Oracle8i č possibile usare il comando "EXECUTE IMMEDIATE" per eseguire SQL dinamico e per utilizare direttamente comandi di tipo DDL da PL/SQL.
Nelle versioni precedenti occorreva utilizzare solamente il package DBMS_SQL (tuttora utilizzabile se si desidera).

Esempio di comando DDL con il comando EXECUTE IMMEDIATE:
Begin
        EXECUTE IMMEDIATE 'CREATE TABLE APPO(CAMPO_1 NUMBER)';
end;

Esempio di sql dinamico il comando EXECUTE IMMEDIATE:
EXECUTE IMMEDIATE 'CREATE TABLE PROVA (CAMPO_1 NUMBER)';
sql_stmt := 'INSERT INTO PROVA VALUES (:1)';
EXECUTE IMMEDIATE sql_stmt USING campo_1;


E' possibile usare il package DBMS_SQL per eseguire le dichiarazione dinamiche. Guardi questo esempio:

CREATE OR REPLACE PROCEDURE prova_sql_dinamico AS
        cur integer;
        rc integer;
BEGIN
        cur := DBMS_SQL.OPEN_CURSOR;
        DBMS_SQL.PARSE(cur, 'CREATE TABLE PROVA (campo_1 NUMBER)', DBMS_SQL.NATIVE);
        rc := DBMS_SQL.EXECUTE(cur);
        DBMS_SQL.CLOSE_CURSOR(cur);
END;