PL/SQL基础(二)匿名块

匿名块是一种没有名字的块。[@more@]这些块在运行它们的应用程序中说明,并且为了执行在运行时由PL/SQL引擎通过。匿名块可以嵌入预编译程序(或OCI程序)、以及SQL*PLUS或SQL*DBA中。SQL*Forms中的触发器也由这些块组成,匿名块用得较多。
匿名块的定义形式为:
  DECLARE
  --说明
  BEGIN
  --语句序列
  EXCEPTION
  --例外处理程序]
  END;
  一个PL/SQL块由三部分组成:说明部分,可执行部分和例外处理部分。
  在说明部分中允许说明变量和常量等PL/SQL对象,这些对象在块中引用,或在嵌套的子块中引用。说明部分是可选的。在执行部分可使用SQL的DML语句,事务控制语句,还可使用控制结构如条件控制、迭代控制和顺序控制,这是PL/SQL对SQL的最重要的扩展。在PL/SQL程序中可以方便地发现和处理预定义的或用户定义的称为例外的出错条件(警告或出错条件),当发生错误时,引起(raise)一个例外,正常的执行被停止,控制转移到例外处理程序。例外处理程序也是可选的。
  PL/SQL匿名块结构的例子
  DECLARE
    vnum NUMBER(5);
  BEGIN
    SELECT nfield INTO vnum FROM tTable WHERE sfield=’strValue’;
    IF vnum>0 THEN
      UPDATE tTable SET nfield=nfield-1 WHERE sfield=’strValue’;
      INSERT INTO tLOG VALUES (‘UPDATE tTable’,SYSDATE);
    ENDIF;
    COMMIT;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
      INSERT TNTO tLOG VALUES (‘not found in tTable’,SYSDATE);
  END;
  注意关键词DECLARE、BEGIN和EXCEPTION后面不用分号跟随,但是END和全部其它PL/SQL语句要求分号。
  上面的例子说明了一个PL/SQL变量’vnum’,然后使用了一个SELECT语句。如果此变量的值为正,则修改’tTable’表。如果SELECT寻找失败,则引起NO_DATA_FOUND’的例外,控制立即转移到EXCEPTION部分,将所出问题记录到一个表'tLOG'中。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/174388/viewspace-916845/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/174388/viewspace-916845/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值