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;
以上就是這篇文章的全部內容瞭,希望本文的內容對大傢的學習或者工作具有一定的參考學習價值,謝謝大傢對WalkonNet的支持。如果你想瞭解更多相關內容請查看下面相關鏈接
推薦閱讀:
- Oracle存儲過程案例詳解
- 快速學習Oracle觸發器和遊標
- Oracle中dbms_output.put_line的用法實例
- 關於Oracle存儲過程和調度器實現自動對數據庫過期數據清除的問題
- ORACLE中dbms_output.put_line輸出問題的解決過程