Oraclefor循环
Oracle for in loop循环的⼀些实例,以作学习和加强使⽤熟练度及场景应⽤.
⼀些技巧
for语句后⾯的loop end loop可以类⽐成c#/java等编程语⾔for语句后⾯的语句块符号(花括号{}), 以便理解和使⽤.⼀些实例
循环输出数值
-- 循环输出数值
begin
for i in 1 .. 100 loop
sys.dbms_output.put_line(i);
end loop;
end;
循环累加oracle游标的使用
-- 循环累加
declare
var_sum number := 0;
begin
for i in 1 .. 100 loop
var_sum := var_sum + i;
end loop;
sys.dbms_output.put_line(var_sum); -- 5050
end;
批量插⼊
-
- 批量插⼊
begin
for i in 1 .. 100 loop
-- todo: insert into some_table(field1, field2, ..., fieldN) values(valie1, value2, ..., valueN);
sys.dbms_output.put_line('insert: ' || to_char(i));
end loop;
commit;
sys.dbms_output.put_line('多次insert,统⼀commit');
end;
批量更新
-- 批量更新
begin
for i in 1 .. 100 loop
-- todo: update some_table set fieldN = valueN where fieldN = valueN;
sys.dbms_output.put_line('update: ' || to_char(i));
end loop;
commit;
sys.dbms_output.put_line('多次update,统⼀commit');
end;
循环输出⽤户表信息
-- 查询你能管理的所有⽤户信息
select user_id, username, created from all_users;
-
- 循环输出⽤户表信息
begin
for cur_row in (select user_id, username, created from all_users) loop
sys.dbms_output.put_line(cur_row.username);
end loop;
end;
-- 当循环对象是⽐较长串的SQL时,建议提取游标,⽅便后续查看和维护
循环输出⽤户表信息(游标提取)
-- 循环输出⽤户表信息(游标提取)
declare
-- 提取游标对象,⽅便单独维护SQL
cursor cursor_all_users is
select user_id, username, created from all_users;
-- 游标⼦项(更多的时候,表是动态表,所以这句声明也可以省略)
-- cursor_user all_users%rowtype;
begin
for cursor_user in cursor_all_users loop
dbms_output.put_line(cursor_user.username);  end loop;
end;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。