网站首页 > 文章中心 > 其它

oracle语句怎么循环

作者:小编 更新时间:2023-09-25 10:53:10 浏览量:332人看过

Oracle循环的几种写法(GOTO 、FOR 、 WHILE 、LOOP)

第一段:GOTO循环用法

DECLARE

? x number;

BEGIN

? 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循环用法

? ? ? dbms_output.put_line(i);

? END LOOP;

--最简单的循环?

/*

declare 定义变量

? for...loop...end loop; 语句

第三段:WHILE循环用法

? WHILE x 1 LOOP

? ? ? x := x - 1;

? ? ? dbms_output.put_line('循环内'||x);

? dbms_output.put_line('循环外'||x);

begin...end 语句块

? while...loop...end loop; 语句

第四段:LOOP循环用法

? x number;

? x :=0;

? LOOP

? ? ? ? x := x ◆ 1;

? ? ? ? dbms_output.put_line('内'||x);

? END LOOP;

? dbms_output.put_line('外'||x);

begin...end

? x 变量赋值

? loop...end loop语句

? ? ? exit when ...(条件) ;

Oracle中循环语句的几种用法

--1.For

FOR?循环变量?IN?[REVERSE]?下界..上界

LOOP

语句组

END?LOOP;

for?i?in?1..num?loop

resu:=?resu?*?i;

end?loop;

dbms_output.put_line(TO_CHAR(resu));

语法格式:

WHILE?条件?LOOP

--用WHILE循环求1~100所有整数的和?

summ?number?:=0;

WHILE?i0?LOOP

summ:=summ◆i;

i:=i?-?1;

dbms_output.put_line(summ);

Oracle中使用PL/SQL怎样用循环插入多条数据?

使用loop循环,比如:

for item in (select a,b,c from table_a where 条件) loop

insert into table_b(a,b,c) values (item.a,item.b,item.c);

end loop;

也可以使用索引表循环,以上只是一个简单的例子,需要根据你的具体情况选择循环方式.

如果插入的数据有规律,可利用for、loop循环插入,主要用于批量生成测试数据

begin

for i in 1 .. 100 loop

insert into test(xh,mc) values(i||'','测试');

end ;.

table_exists_action参数控制导入动作:replace替换原表,truncate清除原表数据再导入,append增量导入数据,当然impdp数据泵的导入要依赖于directory路径.

oracle 循环语句

create table temp_tab

(

id number primary key not null,

age number not null

);

declare

ids :=ids◆1;

age :=age◆1;

insert into temp_tab values(ids,names,age);

end;

oracle存储过程循环怎么写

Oracle中有三种循环(For、While、Loop):

①.、loop循环:

create?or?replace?procedure?pro_test_loop?is

i?number;

i:=0;

loop

i:=i◆1;

dbms_output.put_line(i);

exit;

end?if;

end?pro_test_loop;

create?or?replace?procedure?pro_test_for?is

end?pro_test_for;

create?or?replace?procedure?pro_test_cursor?is

userRow?t_user%rowtype;

cursor?userRows?is

select?*?from?t_user;

for?userRow?in?userRows?loop

dbms_output.put_line(userRow.Id||','||userRow.Name||','||userRows%rowcount);

end?pro_test_cursor;

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章