什么时候必须使用PLSQL而不是SQL?

时间:2019-06-17 03:22:10

标签: sql oracle plsql

我非常了解Oracle SQL,但是只了解PL / SQL的基础知识。最近,我在一次采访中被问到“何时使用PL / SQL代替SQL”,这让我很沮丧。我在研究时没有找到明确的答案。从到目前为止的读物来看,当您需要创建诸如函数,过程,游标,包,类型之类的东西时,我认为您使用PL / SQL代替Oracle SQL。这真的是答案吗?您不能使用Oracle SQL创建那些东西吗?

感谢任何人的回答!

3 个答案:

答案 0 :(得分:2)

我相信您想知道何时有人编写单个SQL语句以及何时有人需要编写过程编程。一个简单的解释是:

  1. SQL语句是一个满足特定条件的语句 需要围绕合理数量的非常具体的组成部分 可以互相连接的表/视图的数量。
  2. 但是可以说,您必须在需要的地方创建数据库应用程序 建立用于累积数据的流程,应用业务逻辑 对于您的前端应用程序中发生的交易, 通过使用触发器,清洁来确保约束完好无损 数据,匹配数据,组合多个数据源,转换 数据,将数据分成不同的粒度,将数据加载到 分离维度表和事实表,将数据加载到汇总中 表,将数据加载到DataWarehouse表示层等中, 那就是您需要创建存储过程,函数, 视图,触发创建可支持所有功能的数据管道 这些活动和工作流程。
  3. 知道这些过程,功能和触发器将具有 您正在引用的多个此类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