qu’est-Ce que SQL Dynamique?

dynamic SQL est une méthodologie de programmation pour générer et exécuter des instructions au moment de l’exécution. Il est principalement utilisé pour écrire les programmes polyvalents et flexibles dans lesquels les instructions SQL seront créées et exécutées au moment de l’exécution en fonction de l’exigence.,

Dans ce tutoriel, vous allez apprendre-

  • Façons d’écrire du SQL dynamique
  • NDS (Natif SQL Dynamique) – Exécution Immédiate
  • DBMS_SQL pour SQL Dynamique

Voies d’écrire du SQL dynamique

PL/SQL fournit deux manières d’écrire du SQL dynamique

  1. NDS – Dynamique Natif SQL
  2. DBMS_SQL

NDS (Natif SQL Dynamique) – Exécution Immédiate

Natif SQL Dynamique est la façon la plus facile d’écrire du SQL dynamique. Il utilise la commande ‘EXECUTE IMMEDIATE’ pour créer et exécuter le SQL au moment de l’exécution., Mais pour utiliser cette méthode, le type de données et le nombre de variables à utiliser lors d’une exécution doivent être connus auparavant. Il donne également de meilleures performances et moins de complexité lorsqu’il est comparé à DBMS_SQL.

Syntaxe

EXECUTE IMMEDIATE(<SQL>)
  • La syntaxe ci-dessus montre l’EXÉCUTION IMMÉDIATE de la commande.
  • La Clause INTO est facultative et utilisée uniquement si le SQL dynamique contient une instruction select qui récupère les valeurs. Le type de variable doit correspondre au type de variable de l’instruction select.,
  • La Clause USING est facultative et utilisée uniquement si le SQL dynamique contient une variable de liaison.

exemple 1: dans cet exemple, nous allons récupérer les données de la table emp pour emp_no ‘1001’ en utilisant l’instruction NDS.

Sortie

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

Explication du Code:

DBMS_SQL pour SQL Dynamique

PL/SQL fournir les DBMS_SQL package qui vous permet de travailler avec SQL dynamique. Le processus de création et d’exécution du SQL dynamique contient le processus suivant.,

  • Open CURSOR: le SQL dynamique s’exécutera de la même manière qu’un curseur. Donc, pour exécuter L’instruction SQL, nous devons ouvrir le curseur.
  • analyser SQL: l’étape suivante consiste à analyser le SQL dynamique. Ce processus vérifiera simplement la syntaxe et gardera la requête prête à être exécutée.
  • valeurs des variables de liaison: l’étape suivante consiste à attribuer les valeurs des variables de liaison, le cas échéant.
  • définir la colonne: l’étape suivante consiste à définir la colonne en utilisant leurs positions relatives dans l’instruction select.
  • EXECUTE: l’étape suivante consiste à exécuter la requête analysée.,
  • récupérer les valeurs: l’étape suivante consiste à récupérer les valeurs exécutées.
  • fermer le curseur: une fois les résultats récupérés, le curseur doit être fermé.

exemple 1: dans cet exemple, nous allons récupérer les données de la table emp pour emp_no ‘1001’ en utilisant L’instruction DBMS_SQL.

Sortie

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

Explication du Code:

  • ligne de Code 1-9: la déclaration de la Variable.,
  • ligne de Code 10: encadrement de L’instruction SQL.
  • ligne de Code 11: ouverture du curseur à L’aide de DBMS_SQL.OPEN_CURSOR. Il retournera l’id du curseur qui est ouvert.
  • ligne de Code 12: après l’ouverture du curseur, le SQL est analysé.
  • ligne de Code 13: la variable de liaison ‘ 1001 ‘attribue à l’id du curseur à la place’: empno’.
  • ligne de Code 14-17: définition du nom de la colonne en fonction de sa position relative dans L’instruction SQL. Dans notre cas, la position relative est (1) emp_name, (2) emp_no (3) salaire (4) le gestionnaire. Sur la base de cette position, nous définissons la variable cible.,
  • ligne de Code 18: exécution de la requête à L’aide de DBMS_SQL.EXÉCUTER. Il renvoie le nombre d’enregistrements traités.
  • ligne de Code 19-33: récupération des enregistrements à l’aide d’une boucle et affichage de la même chose.
  • ligne de Code 20: DBMS_SQL.FETCH_ROWS récupérera un enregistrement à partir des lignes traitées. Il peut être appelé à plusieurs reprises pour récupérer toutes les lignes. S’il ne peut pas récupérer les lignes, il retournera 0, quittant ainsi la boucle.

résumé

dans cette section, nous avons discuté du SQL dynamique et des façons d’exécuter le SQL dynamique., Nous avons également vu les différentes étapes de l’exécution du SQL dynamique dans les deux manières. Nous avons également vu les exemples dans lesquels le même scénario est géré à la fois de manière NDS et DBMS_SQL pour effectuer l’exécution au moment de l’exécution.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *