Che cos’è Dynamic SQL?

Dynamic SQL è una metodologia di programmazione per la generazione e l’esecuzione di istruzioni in fase di esecuzione. Viene utilizzato principalmente per scrivere programmi generici e flessibili in cui le istruzioni SQL verranno create ed eseguite in fase di esecuzione in base al requisito.,

In questo tutorial, imparerete-

  • Modi per scrivere codice SQL dinamico
  • NDS (Nativo di SQL Dinamico) – Esecuzione Immediata
  • DBMS_SQL per SQL Dinamico

Modi per scrivere codice SQL dinamico

PL/SQL fornisce due modi per scrivere codice SQL dinamico

  1. NDS – Nativo di SQL Dinamico
  2. DBMS_SQL

NDS (Nativo di SQL Dinamico) – Esecuzione Immediata

Nativo di SQL Dinamico è il modo più semplice per scrivere codice SQL dinamico. Utilizza il comando ‘ESEGUI IMMEDIATO’ per creare ed eseguire SQL in fase di esecuzione., Ma per usare in questo modo, il tipo di dati e il numero di variabili da utilizzare in fase di esecuzione devono essere noti prima. Offre anche prestazioni migliori e meno complessità rispetto a DBMS_SQL.

Sintassi

EXECUTE IMMEDIATE(<SQL>)
  • La sintassi precedente mostra ESEGUI comando IMMEDIATO.
  • La clausola INTO è facoltativa e viene utilizzata solo se l’SQL dinamico contiene un’istruzione select che recupera i valori. Il tipo di variabile deve corrispondere al tipo di variabile dell’istruzione select.,
  • La clausola USING è facoltativa e viene utilizzata solo se l’SQL dinamico contiene una variabile bind.

Esempio 1: In questo esempio, andremo a recuperare i dati dalla tabella emp per emp_no ‘1001’ usando l’istruzione NDS.

Uscita

Employee Name : XXX Employee Number: 1001 Salary: 15000 Manager ED: 1000

Spiegazione di Codice:

DBMS_SQL per SQL Dinamico

PL/SQL fornire il DBMS_SQL pacchetto che ti permette di lavorare con SQL dinamico. Il processo di creazione ed esecuzione di SQL dinamico contiene il seguente processo.,

  • APRI CURSORE: L’SQL dinamico verrà eseguito allo stesso modo di un cursore. Quindi, per eseguire l’istruzione SQL, dobbiamo aprire il cursore.
  • ANALISI SQL: Il passo successivo è analizzare l’SQL dinamico. Questo processo controllerà solo la sintassi e manterrà la query pronta per l’esecuzione.
  • BIND VARIABLE Values: il passo successivo consiste nell’assegnare i valori per le variabili bind se presenti.
  • DEFINE COLUMN: Il passo successivo è definire la colonna usando le loro posizioni relative nell’istruzione select.
  • EXECUTE: Il passo successivo è eseguire la query analizzata.,
  • FETCH VALUES: Il passo successivo è quello di recuperare i valori eseguiti.
  • CHIUDI CURSORE: una volta recuperati i risultati, il cursore deve essere chiuso.

Esempio 1: In questo esempio, andremo a recuperare i dati dalla tabella emp per emp_no ‘1001’ usando l’istruzione DBMS_SQL.

Uscita

Employee Name:XXX Employee Number:1001 Salary:15000 Manager ID:1000

il Codice di Spiegazione:

  • linea di Codice 1-9: dichiarazione di Variabile.,
  • Linea di codice 10: Inquadrare l’istruzione SQL.
  • Linea di codice 11: Apertura del cursore utilizzando DBMS_SQL.APRI_CURSORE. Restituirà l’ID del cursore che viene aperto.
  • Linea di codice 12: dopo l’apertura del cursore, viene analizzato SQL.
  • Linea di codice 13: La variabile Bind ‘1001’ sta assegnando all’id del cursore invece’: empno’.
  • Linea di codice 14-17: Definizione del nome della colonna in base alla loro posizione relativa nell’istruzione SQL. Nel nostro caso, la posizione relativa è (1) emp_name, (2) emp_no (3) stipendio (4) manager. Quindi in base a questa posizione stiamo definendo la variabile target.,
  • Linea di codice 18: Esecuzione della query utilizzando DBMS_SQL.ESEGUIRE. Restituisce il numero di record elaborati.
  • Linea di codice 19-33: Recupero dei record utilizzando un ciclo e visualizzazione dello stesso.
  • Linea di codice 20: DBMS_SQL.FETCH_ROWS recupererà un record dalle righe elaborate. Può essere chiamato ripetutamente per recuperare tutte le righe. Se non riesce a recuperare le righe, restituirà 0, uscendo così dal ciclo.

Sommario

In questa sezione, abbiamo discusso SQL dinamico e i modi per eseguire SQL DINAMICO., Abbiamo anche visto i diversi passaggi nell’esecuzione dell’SQL dinamico in entrambi i modi. Abbiamo anche visto gli esempi in cui lo stesso scenario viene gestito in entrambi i modi NDS e DBMS_SQL per eseguire l’esecuzione in fase di esecuzione.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *