pl/sql中bulk collect的用法
bulk collect可以將查詢結果一次性地載入到collections中,而不用一條一條地處理。在select into,fetch into,returning into語句使用使用bulk collect時,所有的into變數都必須是collections。
create table jy
(
object_id number(12),
object_name varchar2(20),
object_type varchar2(20)
)
在select into語句中使用bulk collect
declare
type object_list is table of jy.object_name%type;
objs object_list;
begin
select object_name bulk collect
into objs
from jy;
for r in objs.first .. objs.last loop
dbms_output.put_line(''|| objs(r));
end loop;
end;
/
在fetch into中使用bulk collect
declare
type objecttab is table of jy%rowtype;
objs objecttab;
cursor cob is
select object_id, object_name, object_type
from jy;
begin
open cob;
fetch cob bulk collect
into objs;
close cob; -- 把結果集一次fetch到collect中,我們還可以透過limit引數,來分批fetch資料
for r in objs.first .. objs.last loop
dbms_output.put_line(' ' || objs(r).object_name);
end loop;
end;
declare
type objecttab is table of jy%rowtype;
objs objecttab;
cursor cob is
select object_id, object_name, object_type
from jy;
begin
open cob;
loop
fetch cob bulk collect
into objs limit 100;--每次取一百條資料這是可以根據你的資料庫效能來決定的
exit when cob%notfound;
dbms_output.put_line('count:' || objs.count || ' first:' || objs.first ||
' last:' || objs.last);
for r in objs.first .. objs.last loop
dbms_output.put_line(' objs(r)=' || objs(r).object_name);
end loop;
end loop;
close cob;
end;
在returning into中使用bulk collect
declare
type id_list is table of jy.object_id%type;
ids id_list;
type name_list is table of jy.object_name%type;
names name_list;
begin
delete from jy returning object_id, object_name bulk collect into ids,
names;
dbms_output.put_line('deleted ' || sql%rowcount || ' rows:');
for i in ids.first .. ids.last loop
dbms_output.put_line('object #' || ids(i) || ': ' || names(i));
end loop;
end;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-716765/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20240607]PL/SQL中sql語句的註解.txtSQL
- Oracle PL/SQL程式碼中的註釋OracleSQL
- PL/SQL 宣告SQL
- Oracle PL/SQLOracleSQL
- SQL中Merge的用法SQL
- SQL中的遞迴用法SQL遞迴
- pl/sql to_dateSQL
- PL/SQL 運算子SQL
- PL/SQL 條件SQL
- PL/SQL 迴圈SQL
- PL/SQL 遊標SQL
- Oracle 的PL/SQL語言使用OracleSQL
- 使用PL/SQL找到兩個表中的相似值FKSQL
- 【OracleEBS】 在PL/SQL中呼叫Oracle ERP請求OracleSQL
- 如何在PL/SQL中讀寫檔案(轉)SQL
- SQL資料庫中Truncate的用法SQL資料庫
- sql中union和union all的用法SQL
- SQL AS 的用法SQL
- PL/SQL中動態掉用儲存過程SQL儲存過程
- Oracle PL/SQL塊簡介OracleSQL
- ultraedit高亮顯示pl/sqlSQL
- Script to Collect Log File Sync Diagnostic Information (lfsdiag.sql)ORMSQL
- pl/sql developer的一個小問題SQLDeveloper
- PL/SQL 條件控制語句SQL
- PL/SQL程式設計急速上手SQL程式設計
- 講透JAVA Stream的collect用法與原理,遠比你想象的更強大Java
- pl/sql developer中關於TIMESTAMP顯示格式的疑問和學習SQLDeveloper
- 使用profiler測試Oracle PL/SQL效能OracleSQL
- SQL語句IN的用法SQL
- sql devloper 用法的和SQL 編寫SQLdev
- 7.53 COLLECT
- 【TUNE_ORACLE】列出LOOP套LOOP的PL/SQL程式碼SQL參考OracleOOPSQL
- SQL語句中不同的連線JOIN及SQL中join的各種用法SQL
- Oralce 使用SQL中的exists 和not exists 用法詳解SQL
- Oralce之PL/SQL程式設計(遊標)SQL程式設計
- OCP 複習筆記之PL/SQL (1)筆記SQL
- PL/SQL第二章--基本語法SQL
- PL/SQL第三章--游標SQL
- OCP 複習筆記之PL/SQL (3)筆記SQL