5° Anno TEORIA 4. Introduzione al linguaggio SQL | Page 63

16. Il linguaggio SQL Vers. 11.2 – Febbraio 2026
SQL DINAMICO
La tecnica dell’ SQL dinamico o dynamic SQL non prevede l’ inserimento statico di istruzioni SQL nel codice del programma ospite ma la loro acquisizione dinamica o a tempo di esecuzione da qualsiasi dispositivo di input, oppure la loro generazione a programma. Quindi le istruzioni SQL non sono note più a tempo di compilazione come avviene per l’ SQL embedded ma vengono create o acquisiste a tempo di esecuzione dal programma ospite.
Con l’ SQL dinamico è possibile mantenere indefiniti fino al momento dell’ esecuzione del programma:- il testo dell’ istruzione SQL;- il numero ed i tipi delle variabili ospiti;- i riferimenti agli oggetti della base di dati.;
Il programma del linguaggio ospite deve chiedere all’ SQL di prendere una stringa di caratteri appena letta, trasformarla in istruzione SQL ed eseguirla.
Esistono due istruzioni SQL che corrispondono a due diverse modalità di esecuzione di una query:
( A) l’ esecuzione immediata avviene mediante l’ istruzione SQL: EXEC SQL EXECUTE IMMEDIATE < Query >
dove:- < Query > è una stringa che rappresenta una query( composta nel programma ospite) oppure una variabile ospite di tipo stringa. Questa modalità di esecuzione avviene per istruzioni SQL che non richiedono parametri né in ingresso né in uscita come i comandi di inserimento o cancellazione.
( B) l’ esecuzione in due fasi avviene quando l’ istruzione SQL da eseguire utilizza parametri in ingresso o in uscita oppure deve essere eseguita più volte.
Osserviamo due fasi:( B1) la fase di preparazione: che consiste nell’ associare un nome all’ istruzione SQL che può contenere parametri in ingresso rappresentati dal carattere‘?’
EXEC SQL PREPARE < NomeIstruzioneSQL > FROM < IstruzioneSQL >
dove:- < NomeIstruzioneSQL > è il nome dato all’ istruzione < IstruzioneSQL > per poter essere richiamata anche in seguito;- < IstruzioneSQL > è una istruzione SQL che può contenere parametri in ingresso rappresentati dal carattere‘?’
( B2) la fase di esecuzione: che consiste nell’ eseguire l’ istruzione SQL preparata utilizzando l’ istruzione SQL
EXEC SQL EXECUTE < NomeIstruzioneSQL > [ INTO < VariabiliRisultato >] [ USING < VariabiliParametro >]
dove:- < NomeIstruzioneSQL > è il nome dato all’ istruzione < IstruzioneSQL > nella fase di PREPARE;- < VariabiliRisultato > è un elenco di variabili ospiti che conterranno l’ eventuale risultato della query: ogni variabile è preceduta da‘:’’- < VariabiliParametro > è un elenco di variabili ospiti che conterranno i parametri da usare nella query
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 63