易截截图软件、单文件、免安装、纯绿色、仅160KB

PL/SQL中GOTO语句和标签

在PL/SQL中也提供GOTO语句,其语法是
GOTO label;
这里label是在PL/SQL块中定义的标签.标签是用双箭头括号括起来的.当执行GOTO语句的时候,控制会立即转到由标签标识的语句.
1.对于GOTO的限制
a.对于块,循环或者IF语句而言,想要从外层跳到内层是非法的.
b.使用GOTO子句从一个IF子句跳到另一个子句中也是非法的.
begin
if x>3 then
...
goto<<lbl>>
else
<<lbl>>
...
end if;
end;

c.从一个异常处理块内跳转到当前块是非法的。
2.为循环设定标签
循环本身是可以被设定标签的。如果进行了设定,那么可以在EXIT语句中使用该标签指明要退出哪个循环.例如:
<<l_outer>>
for v_outer_index in 1..10 loop
...
<<I_inner>>
for v_inner_index in 1..30 loop
...
if v_outer_index > 5 then
EXIT I_outer;
end if;
end loop I_inner;
end loop I_outer;

如果循环设定了标签,那么可以在END LOOP语句的后面包含该标签名,如上面所示.
3.谨慎的使用GOTO语句
在使用GOTO语句时一定要小心,不然都是些跳来跳去的代码,很难理解也很难维护.
几乎所有使用GOTO的情况都可以使用其他的PL/SQL控制结构,例如循环或者条件结构,来重新进行编写.也可以使用异常处理来退出深层嵌套的循环,而不用直接跳转到结尾.
4.null语句
在一些情况下,你可能想要显式的指明不进行任何操作.这可以通过使用NULL语句来实现.NULL语句不做任何事情,它只是一个占位符.
例如:
begin
...
if ... then
...
else
null;
end if;
...
end;


相关文档:

计算年资的SQL语句

1.bzscs(沙虫 我爱小美)用函數的好辦法:
CREATE    function [dbo].[calc_date](@time smalldatetime,@now smalldatetime)
returns nvarchar(10)
as
begin
declare @year int,@month int,@day int
select @year = datediff(yy,@time,@now)
if  (month(@now)=month(@time)) and (day ......

实验五 SQL查询(排序、集函数和分组子句的应用)

试验目的:
一、学习查询结果的排序
二、学习使用集函数的方法,完成统计
等查询。
三、学习使用分组子句
一、学习查询结果的排序
1、查询全体学生信息,结果按照年龄降
序排序
select *
from student
order by sage desc
2、查询学生选修情况,结果先按照课程
号升序排序,再按成绩降序排序
select *
from ......

执行SQL文,生成EXCEL

''' <summary>
''' SQL文執行結果のEXCEL出力
''' </summary>
''' <param name="connString">OLEDB接続文字列</param>
''' <param name="sqlString">SQL文</param>
''' <param name="savePath">出力ファイルパス</param> ......

用SQL建立索引

  假设你想找书中的某一个句子。你可以一页一页地逐页搜索,但这会花很多时间。而通过使用索引,你可以很快地找到你要搜索的主题。
  表的索引与附在一本书后面的索引非常相似。它可以极大地提高查询的速度。对一个较大的表来说,通过加索引,一个通常要花费几个小时来完成的查询只要几分钟就可以完成。因此没有理由对 ......

sql学习进行时

这两天都没有好好学习,今天终于算投入了些,由于课程的关系,我的sql也是同vb一起学习的。虽然知道贪多嚼不烂,可是按照实际情况,我完全没有理由抛弃sql的。
最近都把时间投入到vb和面向对象中,sql今天好好复习了下,从create database 开始,create table,alter table , add constraint   …&h ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号