ORACLE批量操作
ORACLE批量操作
---------------------------------------------------------------------------
-- 建立表
----------------------------------------------------------------------------
drop table demo;
create table demo (id number, name varchar2(255));
----------------------------------------------------------------------------
-- 批量操作
----------------------------------------------------------------------------
declare
type id_table_type is table of number index by binary_integer;
type name_table_type is table of varchar2(255) index by binary_integer;
id_table id_table_type;
name_table name_table_type;
start_time number;
end_time number;
v_count number := 100000;
begin
--------------------------------------------------------------------------
-- 1、不使用批量插入資料
--------------------------------------------------------------------------
for i in 1 .. v_count loop
id_table(i) := i;
name_table(i) := 'name' || i;
end loop;
start_time := dbms_utility.get_time;
for i in 1 .. v_count loop
insert /*+append*/
into demo
values
(id_table(i), name_table(i));
end loop;
end_time := dbms_utility.get_time;
dbms_output.put_line('不用批量插入' || v_count || '條:' ||
lpad(to_char((end_time - start_time) / 100), 5, ' '));
--------------------------------------------------------------------------
-- 2、使用批量插入資料
--------------------------------------------------------------------------
for i in v_count + 1 .. v_count * 2 loop
id_table(i) := i;
name_table(i) := 'name' || i;
end loop;
start_time := dbms_utility.get_time;
forall i in v_count + 1 .. v_count * 2
insert /*+append*/
into demo
values
(id_table(i), name_table(i));
end_time := dbms_utility.get_time;
dbms_output.put_line(' 用批量插入' || v_count || '條:' ||
lpad(to_char((end_time - start_time) / 100), 5, ' '));
--------------------------------------------------------------------------
-- 3、使用批量更新資料
--------------------------------------------------------------------------
for i in 1 .. v_count loop
id_table(i) := i;
name_table(i) := 'NB' || i;
end loop;
start_time := dbms_utility.get_time;
for i in 1 .. v_count loop
update demo set name = name_table(i) where id = id_table(i);
end loop;
end_time := dbms_utility.get_time;
dbms_output.put_line('不用批量更新' || v_count || '條:' ||
lpad(to_char((end_time - start_time) / 100), 5, ' '));
start_time := dbms_utility.get_time;
forall i in v_count + 1 .. v_count * 2
update demo set name = name_table(i) where id = id_table(i);
end_time := dbms_utility.get_time;
dbms_output.put_line(' 用批量更新' || v_count || '條:' ||
lpad(to_char((end_time - start_time) / 100), 5, ' '));
--------------------------------------------------------------------------
-- 4、使用批量刪除資料
--------------------------------------------------------------------------
for i in 1 .. v_count loop
id_table(i) := i;
end loop;
start_time := dbms_utility.get_time;
forall i in 1 .. id_table.count
delete from demo where id = id_table(i);
end_time := dbms_utility.get_time;
dbms_output.put_line(' 用批量刪除' || v_count || '條:' ||
lpad(to_char((end_time - start_time) / 100), 5, ' '));
end;
/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/720091/viewspace-1057796/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mybatis批量操作demoMyBatis
- Oracle 批量建表空間Oracle
- oracle批量新增更新資料Oracle
- mongodb批量操作, bulk_write,MongoDB
- 使用PrepareStatement實現批量插入操作REST
- 深度解析Django REST Framework 批量操作DjangoRESTFramework
- Oracle批量插入資料insert all into用法Oracle
- Oracle 集合操作Oracle
- oracle基本操作Oracle
- Servlet操作OracleServletOracle
- Linux下使用Ansible處理批量操作Linux
- 【AWR】Oracle批量生成awr報告指令碼Oracle指令碼
- Kettle:Oracle多表格批量同步資料=》mysqlOracleMySql
- Oracle-批量修改欄位裡面的值Oracle
- Redisson批量操作類RBuckets和管道利器RBatchRedisBAT
- DBA ORACLE連線操作Oracle
- ORACLE批量刪除無主鍵重複資料Oracle
- ES 筆記四:文件的基本 CRUD 與批量操作筆記
- Docker批量操作(啟停、刪除、歸檔、載入)Docker
- 通過shell指令碼批量操作mysql資料庫指令碼MySql資料庫
- ORACLE透明加密安裝操作Oracle加密
- oracle dg切換操作示例Oracle
- 【SQL】Oracle BLOB 批量匯入匯出圖片語句SQLOracle
- Java通過Mybatis實現批量插入資料到Oracle中JavaMyBatisOracle
- SOLIDOWORKS二次開發實現批量操作功能Solid
- SOLIDWORKS高階BOM工具屬性匯入和批量操作Solid
- Oracle Dataguard故障轉移(failover)操作OracleAI
- Oracle 重置密碼及基本操作Oracle密碼
- oracle truncate table recover(oracle 如何拯救誤操作truncate的表)Oracle
- ELK批量刪除索引及叢集相關操作記錄索引
- vue+element-ui操作刪除(單行和批量刪除)VueUI
- java操作Oracle 方式一 ( 連線-》操作-》斷開連線 )JavaOracle
- python批量統計Oracle資料庫的空間使用量PythonOracle資料庫
- Oracle生成awr報告操作步驟Oracle
- truncate操作消除ORACLE SEG壞塊解析Oracle
- Oracle OCP(11):操作大資料集Oracle大資料
- ExcelWeb指令碼助手,自定義指令碼,批量操作Excel與網頁ExcelWeb指令碼網頁
- C# redis叢集批量操作之slot計算出16384個字串C#Redis字串
- Go 呼叫 elasticsearch 批量操作介面 “/_bulk” ,提示"\n"錯誤GoElasticsearch