我非常了解Oracle SQL,但是只了解PL / SQL的基础知识。最近,我在一次采访中被问到“何时使用PL / SQL代替SQL”,这让我很沮丧。我在研究时没有找到明确的答案。从到目前为止的读物来看,当您需要创建诸如函数,过程,游标,包,类型之类的东西时,我认为您使用PL / SQL代替Oracle SQL。这真的是答案吗?您不能使用Oracle SQL创建那些东西吗?
感谢任何人的回答!
答案 0 :(得分:2)
我相信您想知道何时有人编写单个SQL语句以及何时有人需要编写过程编程。一个简单的解释是:
答案 1 :(得分:0)
除了(或在SQL之上),还有几种使用PL / SQL的关键方法:
不给应用程序开发人员通过SQL直接访问表的权限。而是在PL / SQL包中构建API。这将使应用程序开发人员,尤其是UI开发人员(如JavaScript开发人员)更容易正确地遵循事务性,数据完整性和安全性规则。
在数据库中实现业务规则逻辑。其中一些可以在“纯” SQL中完成,但是通常您需要一种更具过程性或OO语言才能做到这一点。我知道,我知道-关于将业务逻辑放置在何处的争论是永无止境的。我是这样看的:如果将其放在数据库中,靠近数据和数据模型,您(1)更有可能正确制定规则并使它们与数据模型保持同步,以及(2)可从任何需要它的前端,中间层或后端进程中获得。
“为什么使用PL / SQL?”的全面回顾可用here。
答案 2 :(得分:-3)
PL / SQL是Oracle的SQL方言。如果您要在语句中编写任何特定于Oracle的内容(例如SQL92标准未涵盖的自定义数据类型),那么您正在编写PL / SQL。
但是,是的,通常人们在存储过程和诸如此类的背景下谈论PL / SQL。
总结:Oracle SQL IS PL / SQL