|
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;
|
|