目录:
视频: oracle第00讲 开山 2024
PL / SQL是编写驻留在数据库中的代码时使用的语言。在下面的文章中,你会看到不同的情况,你会发现PL / SQL有用。
使用数据库触发器
触发器 是DBMS中的一个事件,可能导致某些代码自动执行。有四种类型的数据库触发器: 表级触发器
- 可以在INSERT,UPDATE或DELETE事件之前或之后启动活动。这些最常用于跟踪历史信息和数据库更改,保持冗余数据同步,或通过防止发生某些操作来增强安全性。 <! --1 - >
- 非常有用。一个 视图 是一个存储的SQL语句,开发人员可以像查询它本身是一个数据库表一样进行查询。通过在视图上放置INSTEAD OF触发器,可以将INSERT,MODIFY和DELETE命令应用于视图,而不管其复杂性如何,因为INSTEAD OF触发器定义了可以对视图执行哪些操作。数据库级触发器 可以在启动和关闭时激活。例如,当数据库启动时,您可能需要测试其他数据库或Web服务的可用性。在数据库关闭之前,您可能希望通知其他数据库和Web服务数据库正在脱机。
-
- 使用速度编写脚本 编写代码时,输入代码的一部分并在不首先将其保存到数据库的情况下执行它的功能很有用。 Oracle提供了所有PL / SQL IDE支持的功能。
<!保留代码服务器端
大部分PL / SQL代码作为程序单元存储在服务器中。一个典型的应用程序有许多代码行。一些程序员,特别是在J2EE或者J2EE中工作的基于Web的开发人员。尝试将大部分代码写入Java(用于J2EE开发人员)或VB的应用程序服务器中。 NET(.NET开发人员)。这不是很好的做法。在数据库应用程序中,大部分逻辑都致力于检索和更新信息。如果要完成此任务的代码驻留在应用程序服务器中,则必须通过网络向数据库发送请求。然后数据库必须处理请求并通过网络发回信息以供应用程序处理。由于网络和计算机现在非常快,你可能会认为这只需要几分之一秒。尽管单个请求就是这种情况,但是如果一个非常复杂的应用程序需要与数据库进行数百万甚至数亿次的交互,将交互次数乘以几分之一秒会导致性能很差。即使相对简单的只需要少量数据库请求的操作,如果应用程序被数百,数千或数以万计的用户同时访问,也会产生问题。在不使用服务器端编码的情况下构建数据库密集型应用程序比编写在应用程序服务器中运行的所有代码要困难得多。反对编写服务器端代码的一个论据是应用程序不能移植(不能从一个平台移动到另一个平台)。但是,大多数使用Oracle的组织已经使用了很长时间(十年或更长时间),并没有考虑切换到不同的平台。另外,Web开发目前处于快速变化的状态。组织之间经常变化。 NET,J2EE和其他基于Web的应用程序开发环境。
都是。 NET和J2EE环境也在不断变化。在J2EE环境中,大约一年前Web开发的行业标准是创建JavaServer页面(JSP)。目前,行业标准是在JSP / Struts环境下工作。在接下来的一年左右,JavaServer Faces(JSFs)将有可能成为行业标准。因此,写在中间层的代码将来有很高的风险需要重写。服务器端代码运行速度更快,维护和测试更容易,与中间层代码相比,更不易受到更改。因此,在数据库中创建应用程序的重要部分是更好的方法。
有很多地方可以编写应用程序可以使用的代码:
应用程序部分:
PL / SQL程序单元可以返回一组值(函数)或PL / SQL例程可以执行数据库操作(程序)。这些函数和过程可以由其他函数和过程调用,或者在SQL语句中使用(在函数的情况下)。 PL / SQL例程可能像你需要的那样庞大而复杂。一些复杂的例程可能包含数千行代码。整个系统可能包含数百万行代码。嵌入在视图中的PL / SQL代码:
Oracle允许您在数据库视图中嵌入代码。代码实际上可能位于视图中的两个位置之一。首先,您可以将正确制作的函数放在SQL语句的SELECT部分中,以检索其他信息,这些信息可能是也可能不是要查询的表的一部分。
也可以在视图中的INSTEAD OF触发器中嵌入PL / SQL。这些触发器允许您在复杂视图上执行INSERT,UPDATE和DELETE操作,PL / SQL以编程方式处理如何处理这些操作。批处理例程:
批处理例程
运行同时处理大量记录的代码。为系统中的每个客户生成发票或处理整个组织的工资核算是批处理例程。这些例程通常是庞大的,复杂的和数据库密集型的。这种类型的例程一定要用PL / SQL编写。