SQL dynamique natif
Avant de se lancer dans l'apprentissage du SQL dynamique natif, un bref historique est important. Oracle a fait un cadeau au milieu de l'été en mai 1994 à tous les développeurs en introduisant le concept Dynamic SQL dans sa version 7.1 de la base de données (alias Oracle 7.1). Avec cela, il a permis aux développeurs d'écrire le SQL dynamique via le package "DBMS_SQL".
Mais peu à peu, la bibliothèque DBMS_SQL a commencé à perdre de son charme. En raison de ses syntaxes "pas si faciles", des "performances lentes" et des "types définis par l'utilisateur non pris en charge". Toutes ces lacunes ont soulevé le besoin d'autre chose. Ce qui pourrait aider les développeurs à écrire un code bien optimisé sans mettre un stress excessif sur leur esprit.
Oracle a pris son temps, près de cinq ans. Enfin, il a publié une version améliorée de Dynamic SQL avec le lancement d'Oracle Database 8i ou pour être précis d'Oracle Database version 8.1.5 en février 1999. En raison de sa nature stable, cette version améliorée de Dynamic SQL est devenue la partie native du PL/ Langage SQL et a obtenu son nom "Native Dynamic SQL" à travers lequel il est connu maintenant quelques jours. C'est une brève introduction de la genèse du SQL dynamique natif dans Oracle Database.
Afin de comprendre le SQL dynamique natif, nous devons d'abord comprendre ce qu'est le SQL statique dans Oracle Database ?
Qu'est-ce que le SQL statique ?
Comme son nom l'indique, toute instruction SQL qui ne change pas pendant l'exécution est appelée une instruction SQL statique.
L'avantage des instructions SQL statiques est que nous savons déjà si tous les objets dépendants sur lesquels nous écrivons l'instruction sont présents ou non. Un autre avantage des instructions SQL statiques est que nous les codons en dur dans notre application. Ainsi, nous pouvons les régler pour des performances optimales.
Maintenant que nous avons appris ce qu'est le SQL statique, voyons ce qu'est le SQL dynamique ?
Qu'est-ce que le SQL dynamique natif ?
Encore une fois, comme son nom l'indique, toute instruction SQL qui est construite au moment de l'exécution est appelée SQL dynamique . Ces déclarations sont construites à la volée. Par conséquent, ils ne peuvent pas être codés en dur dans l'application. Cela augmente leur flexibilité.
D'une part, le SQL statique vous permet d'exécuter uniquement des instructions DML à l'intérieur de votre bloc PL/SQL. D'autre part, le SQL dynamique vous permet d'exécuter des instructions DDL et cela aussi à l'intérieur de votre bloc PL/SQL. Ainsi, en utilisant Dynamic SQL, vous pouvez créer une table ou supprimer un index ou tronquer votre table directement dans votre bloc PL/SQL. C'est un avantage du SQL dynamique natif par rapport au SQL statique.
Qu'est-ce que le PL/SQL dynamique natif ?
Semblable au SQL dynamique, le processus de construction du code PL/SQL au moment de l'exécution est appelé PL/SQL dynamique.
Voyons maintenant les avantages du package Native Dynamic SQL sur DBMS_SQL dans Oracle Database.
Avantages du SQL dynamique natif
- Codes faciles à utiliser : Par rapport au package DBMS_SQL, le SQL dynamique natif est beaucoup plus facile à utiliser. C'est principalement parce qu'il est incorporé dans le SQL lui-même. Cela équivaut à utiliser du SQL statique dans un code PL/SQL. De plus, le code SQL dynamique natif est plus compact et lisible que le package DBMS_SQL. Ce dernier nécessite une grande quantité de codes en raison de procédures séquentielles strictes. Cela le rend plus complexe.
- Amélioration des performances du code : Il existe une prise en charge intégrée du SQL dynamique natif dans l'interpréteur PL/SQL. Ainsi les programmes qui l'utilisent sont plus performants que ceux utilisant le package DBMS_SQL. Fondamentalement, le SQL dynamique natif combine les étapes de préparation, de liaison et d'exécution en une seule opération. Cela réduit l'appel de procédure et la surcharge de copie de données, ce qui améliore les performances.
- Prise en charge des types définis par l'utilisateur : Contrairement au package DBMS_SQL, le SQL dynamique natif prend en charge toutes sortes de types définis par l'utilisateur. Par exemple, les objets définis par l'utilisateur, les REF et les collections.
- Prise en charge de la récupération dans les enregistrements : Les lignes résultant d'une requête peuvent être directement extraites dans des enregistrements PL/SQL à l'aide de SQL dynamique natif. Ce n'est pas possible avec le package DBMS_SQL.
Quelles sont les fonctionnalités de Dynamic SQL dans Oracle Database ?
- Tout d'abord, Dynamic DDL &DML avec l'utilisation de n'importe quelle variable de liaison.
- Deuxièmement, DQL dynamique et
- Troisièmement, DML dynamique utilisant une liste connue de variables de liaison
Ce sont les trois fonctionnalités que Dynamic SQL ajoute à votre programmation PL/SQL.
Alors, comment utilisons-nous le SQL dynamique dans Oracle Database ?
Les deux méthodes les plus courantes d'utilisation du SQL dynamique et du PL/SQL dans Oracle Database sont :
- Exécuter la déclaration immédiate et
- Bloc Ouvrir-Pour, Récupérer et Fermer.
L'instruction Execute Immediate est utilisée lorsque la requête renvoie des données sur une seule ligne. Si la requête renvoie des données sur plusieurs lignes, vous pouvez vous aider de Open-For, Fetch et close block. Nous en apprendrons plus sur Execute Immediate et Open-for, fetch and close block dans les prochains didacticiels.
Existe-t-il d'autres façons d'utiliser Dynamic SQL dans Oracle Database ?
Outre les méthodes les plus couramment utilisées mentionnées ci-dessus, les autres façons d'utiliser le SQL dynamique ou le PL/SQL sont
- Avec récupération groupée
- Deuxièmement avec l'exécution en masse immédiate
- Avec Bulk FORALL et
- Enfin, avec l'instruction Bulk Collect Into
Nous avons appris toutes les commandes et instructions ci-dessus dans la série précédente sur le traitement de données en masse.
Si vous aimez apprendre à travers un didacticiel vidéo, allez-y, jetez-y un coup d'œil.
Il s'agit d'une introduction détaillée au Native Dynamic SQL dans Oracle Database. J'espère que vous avez apprécié la lecture. Assurez-vous de partager le lien de ce blog avec vos amis sur vos réseaux sociaux. Assurez-vous également de vous abonner à la chaîne YouTube pour suivre cette série et apprendre quelque chose de nouveau et d'intéressant.
Merci et bonne journée !