WEB开发网
开发学院数据库Oracle Oracle数据库11g新特性:高效的PL/SQL编码 阅读

Oracle数据库11g新特性:高效的PL/SQL编码

 2008-12-16 13:03:47 来源:WEB开发网   
核心提示: 在这种情况下,触发器的执行顺序 非常重要,Oracle数据库11g新特性:高效的PL/SQL编码(6),如果 tr_pay_risk_rating 没有在另一个触发器之前触发,就无法设置正确的变量,下面是一个小型示例,演示了当计数器不是 10 的倍数时,并且设置将无法正确实现要求,在以前

在这种情况下,触发器的执行顺序 非常重要。如果 tr_pay_risk_rating 没有在另一个触发器之前触发,就无法设置正确的变量,并且设置将无法正确实现要求。在以前,唯一可能的方法是,将所有逻辑放在一段代码中,并通过在代码中对逻辑进行排序来强制执行。

在 Oracle 数据库 11g 中,您可以在触发器创建脚本中放置一条子句,来强制对触发器进行排序。以下是带有该子句的触发器的上半部分:

create or replace trigger tr_pay_follow_up
before update
on payments
for each row
follows tr_pay_risk_rating
begin
... and so on ...

该子句 (FOLLOWS <triggerName>) 强制触发器在指定触发器之后触发。您可以通过运行在前面看到的更新脚本来进行测试。

SQL> @upd_pay
This is tr_pay_risk_rating
This is tr_pay_follow_up
1 row updated.
SQL> select * from payments;
PAY_ID CREDIT_CARD_NO    AMOUNT P RISK_R F
---------- ---------------- ---------- - ------ -
1 1234567890123456   100000 C HIGH  Y
1 row selected.

列按照预期方式正确填充。另外,注意触发器的正确排序,以确定您打算执行的操作。

触发器排序可让您获得模块化代码的优势,同时确保它们能够以正确的顺序执行。

如果什么都不做,使用 CONTINUE

在全部功能中,直到现在,PL/SQL 还缺少一个重要语法:如何指示它什么都不做,转至循环结尾,然后再次循环。

在 Oracle 数据库 11g 中,PL/SQL 具有一个名为 CONTINUE 的新结构,可在循环中使用。该语句可将逻辑移到循环结尾,然后再移到循环开头。下面是一个小型示例,演示了当计数器不是 10 的倍数时,控制如何移到循环结尾。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Oracle 数据库 特性

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接