共计 1440 个字符,预计需要花费 4 分钟才能阅读完成。
导读 | 这篇文章介绍了 Oracle 中 for 循环的使用方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 |
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;
循环累加
-- 循环累加
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;
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值
正文完
星哥玩云-微信公众号