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? P>
Merci à quiconque répondant! P>
3 Réponses :
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. P>
Mais oui, les gens parlent généralement de PL / SQL dans le contexte des procédures stockées et des choses comme ça. P>
Résumer: Oracle SQL est PL / SQL P>
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 i>, c'est une langue i>. Procédures, fonctions, types, ... - Celles-ci ne sont pas Oracle Special Stuff i>. Oui, les gens correspondent généralement à PL / SQL avec Procédures stockées i>. 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.
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: p>
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.
Il existe plusieurs moyens clés d'utiliser PL / SQL en plus de (ou, au-dessus de) SQL: P>
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é. P> LI>
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. p> li> ul>
Un examen complet de "Pourquoi utiliser pl / sql?" est disponible ici . p>