-1
votes

Quand devez-vous utiliser plsql au lieu de SQL?

Je connais assez bien Oracle SQL, mais connais uniquement les bases mêmes de PL / SQL. J'ai récemment eu une entrevue où on m'a demandé: "Quand utilisez-vous PL / SQL au lieu de SQL", et j'ai été percuté. Je n'ai pas trouvé de réponse claire pour cela pendant la recherche. D'après ce que j'ai lu jusqu'à présent, je pense que vous utilisez Pl / SQL au lieu de Oracle SQL lorsque vous devez créer des éléments tels que des fonctions, des procédures, des curseurs, des packages, des types. Est-ce vraiment la réponse? Pouvez-vous ne pas créer ces choses avec Oracle SQL?

Merci à quiconque répondant!


0 commentaires

3 Réponses :


-3
votes

PL / SQL est la dialecte SQL d'Oracle. Si vous écrivez des éléments spécifiques à Oracle dans vos déclarations (comme des types de données personnalisés non couverts par la norme SQL92, par exemple), vous écrivez PL / SQL.

Mais oui, les gens parlent généralement de PL / SQL dans le contexte des procédures stockées et des choses comme ça.

Résumer: Oracle SQL est PL / SQL


2 commentaires

J'ai bien peur de ne pas être d'accord avec la plupart de ce que vous avez dit. Ce n'est pas un dialecte , c'est une langue . Procédures, fonctions, types, ... - Celles-ci ne sont pas Oracle Special Stuff . Oui, les gens correspondent généralement à PL / SQL avec Procédures stockées . Non, Oracle SQL n'est pas PL / SQL.


Battez-moi-moi, petitfoot. :-) Peut-être que cela aidera: PL / SQL est à Oracle SQL car Transact-SQL est à Microsoft SQL.



2
votes

Je pense que vous voulez savoir quand quelqu'un écrit une seule déclaration SQL vs lorsque quelqu'un doit écrire une programmation procédurale. Une explication simple serait:

  1. une instruction SQL est une déclaration unique qui remplirait un spécifique besoin d'un composant très spécifique entourant un nombre raisonnable des tables / des vues pouvant être jointes les unes aux autres.
  2. Mais disons que vous devez faire une application de base de données où vous avez besoin Construire des processus pour accumuler des données, appliquer des logiques commerciales Pour que les transactions se produisent dans votre application avant, rendant bien sûr que les contraintes sont intactes en utilisant des déclencheurs, le nettoyage données, données correspondantes, combinaison de sources de données multiples, transformation des données, apportant des données dans différentes granularités, chargement de données dans Dimensionnel distinct et des tables de faits, chargement des données en agrégat Tableau, chargement de données dans la couche de présentation Datawarehouse, etc., C'est à ce moment que vous auriez besoin de créer une procédure stockée, des fonctions, Vues, ​​déclencheurs pour créer le pipeline de données qui peut supporter tout ces activités et flux de travail.
  3. sais que ces procédures, fonctions et déclencheurs auront Plusieurs énoncées SQL de ces déclarations que vous parlez avec Blocs conditionnels, boucle, table temporaire, entrée et sortie variables, étapes de création d'index, etc.

3 commentaires

Les étapes de création d'index doivent généralement ne pas faire partie d'une application PL / SQL.


Vous pouvez absolument avoir la procédure stockée de la recréation de la nouvelle nuit après la nuit après la nuit dans votre processus d'entrepôt de données ETL pour recréer les index qui ont été supprimés avant la charge de données. Mais oui, cela varie d'une organisation à l'organisation sur la manière dont leurs DBA conservent les index.


OK, les processus ETL peuvent être l'exception qui prouve la règle.



1
votes

Il existe plusieurs moyens clés d'utiliser PL / SQL en plus de (ou, au-dessus de) SQL:

  • Ne donnez pas aux développeurs d'applications Accès direct aux tables via SQL. Au lieu de cela, construisez une API dans des packages PL / SQL. Cela facilitera la tâche des applDevs, en particulier des utilisateurs d'interface utilisateur, tels que les développeurs JavaScript, de suivre correctement les règles transactionnelles, de l'intégrité des données et de la sécurité.

  • Implémentez la logique de règle d'entreprise dans la base de données. Une partie de celle peut être faite dans le SQL "pur", mais vous aurez généralement besoin d'une langue plus procédurale ou oo pour le faire. Je sais, je sais - il y a un grand débat sans fin sur l'endroit où mettre de la logique Biz. Voici comment je le regarde: si vous le mettez dans la base de données, près du modèle de données et de données, vous êtes (1) plus susceptible d'obtenir les règles correctement et de les conserver dans le modèle de données et (2) que la logique est disponible à partir de n'importe quelle extrémité avant, de niveau moyen ou de backend qui en a besoin.

    Un examen complet de "Pourquoi utiliser pl / sql?" est disponible ici .


0 commentaires