DECLARE
x number
BEGIN
x := 9
<<repeat_loop>>--循环点
x := x - 1
dbms_output.put_line(x)
IF x >0 THEN
GOTO repeat_loop --当x的值>0时,就goto到repeat_loop
END IF
END
/*以上语句翻译如下:
declare 定义变量
begin...end语句块
x 变量赋值
<<repeat_loop>>设置循环点
循环内容
x 变量递减
按行打印 x
IF...END IF语句块
IF...(条件) THEN :满足IF条件 则
GOTO语句 前往循环点
*/
二、FOR循环用法
DECLARE
x number
BEGIN
FOR i in 2..10 LOOP
dbms_output.put_line(i)
END LOOP
END
--最简单的循环?
/*
declare 定义变量
begin...end语句块
for...loop...end loop语句
*/
三、WHILE循环用法
DECLARE
x number
BEGIN
x :=5
WHILE x >1 LOOP
x := x - 1
dbms_output.put_line('循环内'||x)
END LOOP
dbms_output.put_line('循环外'||x)
END
/*
declare 定义变量
begin...end 语句块
while...loop...end loop语句
*/
四、LOOP循环用法
DECLARE
x number
BEGIN
x :=0
LOOP
x := x + 1
EXIT WHEN x >9--这里有个""号
dbms_output.put_line('内'||x)
END LOOP
dbms_output.put_line('外'||x)
END
/*
declare 定义变量
begin...end
x 变量赋值
loop...end loop语句
exit when ...(条件)
*/
这样使用的:for
xx
in
(select
语句)
这是隐式游标,这个结构中不能带参数,或者说普通的游标,隐式或显式的都不能带参数,使用参数游标或引用(动态)游标。
例如:
declare
cursor cur(C_value number) is select col_A,col_B from tableA where col_C=C_value
begin
for xx in cur loop
--处理
end loop
end
扩展资料:
注意事项
使用for循环实现
declare
cursor
cur
is
select
*
from
tablename
aw_row
tablename%rowtype
begin
for
raw_row
in
cur
loop
dbms_output.put_line('test')
end
loop
end
for语句直接帮做了游标的打开关闭,以及判断工作,所以比较常用。
如果是 1,2,3和1,2,3,4,5分别以整体的数据加到 table2中declare
v_a table1.a%type
v_str varchar2(2000)
begin
select a into v_a from table1
for v_aa in 1..v_a loop
if(length(str)=0)then
str:=v_aa
else
str:=str ||','|| v_aa
end if
end loop
insert into table2 values(str)
end
/
是分别循环加到table2中
declare
v_a table1.a%type
begin
select a into v_a from table1
for v_aa in 1..v_a loop
insert into table2 values(v_aa)
end loop
end
/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)