欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle中實現(xiàn)一次插入多條數(shù)據(jù)詳細代碼舉例

 更新時間:2024年06月05日 09:12:30   作者:牛奶咖啡13  
公司的項目,有個功能每次使用需要向數(shù)據(jù)庫插入很多數(shù)據(jù),這里給大家總結(jié)下,這篇文章主要給大家介紹了Oracle中實現(xiàn)一次插入多條數(shù)據(jù)的相關(guān)資料,文中通過圖文及代碼介紹的非常詳細,需要的朋友可以參考下

一、需求描述

在我們實際的業(yè)務(wù)場景中,由于單條插入的效率很低(每次都需要數(shù)據(jù)庫資源連接關(guān)閉的開銷),故需要實現(xiàn)一次性插入多條數(shù)據(jù),用以提升數(shù)據(jù)插入的效率;

如下圖是常見的單條插入數(shù)據(jù):

二、Oracle實現(xiàn)一次插入多條數(shù)據(jù)

我這里以grade2表為例進行演示說明:

2.1、union all拼接查詢

采用union all拼接查詢方式實現(xiàn)一次向同一個表中插入多條數(shù)據(jù)語法:

INSERT into 表名(字段名1,字段名2,字段名3,...) 
SELECT 值1,值2,值3,... from dual
union all SELECT 值11,值21,值31,... from dual
union all SELECT 值12,值22,值32,... from dual
...

示例(向同一個表同時插入6條不同內(nèi)容的數(shù)據(jù)):

INSERT into "grade2"("name","chinese","math","english") 
SELECT '張10',100,100,100 from dual
union all SELECT '張20',101,101,101 from dual
union all SELECT '張30',102,102,102 from dual
union all SELECT '張40',103,103,103 from dual
union all SELECT '張50',104,104,104 from dual
union all SELECT '張60',105,105,105 from dual

2.2、insert all插入

采用insert all方式實現(xiàn)一次向同一個表中插入多條數(shù)據(jù)語法:

insert all 
into 表名(字段名1,字段名2,字段名3,...) VALUES(值1,值2,值3,...)
into 表名(字段名1,字段名2,字段名3,...) VALUES(值11,值21,值31,...)
into 表名(字段名1,字段名2,字段名3,...) VALUES(值12,值22,值32,...)
...
SELECT * from dual;

示例(向同一個表同時插入6條不同內(nèi)容的數(shù)據(jù)):

insert all 
into "grade2"("name","chinese","math","english") VALUES('張11',100,100,100)
into "grade2"("name","chinese","math","english") VALUES('張21',101,101,101)
into "grade2"("name","chinese","math","english") VALUES('張31',102,102,102)
into "grade2"("name","chinese","math","english") VALUES('張41',103,103,103)
into "grade2"("name","chinese","math","english") VALUES('張51',104,104,104)
into "grade2"("name","chinese","math","english") VALUES('張61',105,105,105)
SELECT * from dual;

insert all方式實現(xiàn)一次向多個表中插入多條數(shù)據(jù)語法:

insert all 
into 表名1(字段名1,字段名2,字段名3,...) VALUES(值1,值2,值3,...)
into 表名1(字段名1,字段名2,字段名3,...) VALUES(值11,值21,值31,...)
into 表名1(字段名1,字段名2,字段名3,...) VALUES(值12,值22,值32,...)
into 表名2(字段名1,字段名2,字段名3,...) VALUES(值1,值2,值3,...)
into 表名2(字段名1,字段名2,字段名3,...) VALUES(值11,值21,值31,...)
into 表名2(字段名1,字段名2,字段名3,...) VALUES(值12,值22,值32,...)
into 表名3(字段名1,字段名2,字段名3,...) VALUES(值1,值2,值3,...)
into 表名3(字段名1,字段名2,字段名3,...) VALUES(值11,值21,值31,...)
into 表名3(字段名1,字段名2,字段名3,...) VALUES(值12,值22,值32,...)
...
SELECT * from dual;

示例(向多個表同時插入6條不同內(nèi)容的數(shù)據(jù)):

insert all 
into "grade2"("name","chinese","math","english") VALUES('張11',100,100,100)
into "grade2"("name","chinese","math","english") VALUES('張21',101,101,101)
into "grade2"("name","chinese","math","english") VALUES('張31',102,102,102)
into "grade"("id","name","course","score","sex","age") VALUES(11,'張11','語文',100,'男',26)
into "grade"("id","name","course","score","sex","age") VALUES(12,'張21','數(shù)學',100,'男',26)
into "grade"("id","name","course","score","sex","age") VALUES(13,'張31','英語',100,'男',26)
SELECT * from dual;

注意:insert all語句里不能直接使用序列生成的值(因為即便每個into語句里都加上seq_test_insert.nextval也不會獲得多個值):

-- 創(chuàng)建序列
create sequence seq_test_insert 
minvalue 1
maxvalue 999999999999999999999999
start with 1
increment by 1
cache 20;

-- 獲取下一個序列值
SELECT seq_test_insert.nextval from dual;

總結(jié) 

到此這篇關(guān)于Oracle中實現(xiàn)一次插入多條數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Oracle一次插入多條數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Oracle中使用觸發(fā)器(trigger)和序列(sequence)模擬實現(xiàn)自增列實例

    Oracle中使用觸發(fā)器(trigger)和序列(sequence)模擬實現(xiàn)自增列實例

    這篇文章主要介紹了Oracle中使用觸發(fā)器(trigger)和序列(sequence)模擬實現(xiàn)自增列實例,包含代碼實例,而且小編已經(jīng)測試過了哦,需要的朋友可以參考下
    2014-07-07
  • 快速查出Oracle數(shù)據(jù)庫中鎖等待的方法

    快速查出Oracle數(shù)據(jù)庫中鎖等待的方法

    這篇文章主要介紹了快速查出Oracle數(shù)據(jù)庫中鎖等待的方法,在實際開發(fā)中很有應(yīng)用價值,需要的朋友可以參考下
    2014-08-08
  • 修改oracle密碼有效期限制的兩種思路詳解

    修改oracle密碼有效期限制的兩種思路詳解

    這篇文章給大家?guī)砹诵薷膐racle密碼有效期限制的兩種思路,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-09-09
  • 巧妙解決Oracle NClob讀寫問題(經(jīng)驗分享)

    巧妙解決Oracle NClob讀寫問題(經(jīng)驗分享)

    下面小編就為大家?guī)硪黄擅罱鉀QOracle NClob讀寫問題(經(jīng)驗分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Oracle存儲過程新手入門教程(附學習用例)

    Oracle存儲過程新手入門教程(附學習用例)

    存儲過程就是作為可執(zhí)行對象存放在數(shù)據(jù)庫中的一個或多個SQL命令,下面這篇文章主要給大家介紹了關(guān)于Oracle存儲過程新手入門教程的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • 麒麟V10更換OpenJDK為Oracle JDK的方法

    麒麟V10更換OpenJDK為Oracle JDK的方法

    這篇文章主要介紹了麒麟V10更換OpenJDK為Oracle JDK,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Oracle 區(qū)塊鏈表創(chuàng)建過程詳解

    Oracle 區(qū)塊鏈表創(chuàng)建過程詳解

    Oracle 區(qū)塊鏈表是一個具有防篡改功能的表,只能插入數(shù)據(jù),同時提供了表級和行級的保留期限,接下來通過本文給大家分享Oracle區(qū)塊鏈平臺的創(chuàng)建過程,感興趣的朋友一起看看吧
    2021-05-05
  • Oracle數(shù)據(jù)泵的導入與導出實例詳解

    Oracle數(shù)據(jù)泵的導入與導出實例詳解

    這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)泵的導入與導出的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Oracle導入導出dmp文件具體示例

    Oracle導入導出dmp文件具體示例

    這篇文章主要給大家介紹了關(guān)于Oracle導入導出dmp文件的相關(guān)資料,dmp文件為oracle數(shù)據(jù)庫的數(shù)據(jù)備份文件,執(zhí)行oracle數(shù)據(jù)庫導出dmp文件,相當于執(zhí)行數(shù)據(jù)庫備份;執(zhí)行導入dmp文件,相當于數(shù)據(jù)庫還原,需要的朋友可以參考下
    2023-11-11
  • Oracle連續(xù)相同數(shù)據(jù)的統(tǒng)計

    Oracle連續(xù)相同數(shù)據(jù)的統(tǒng)計

    今天小編就為大家分享一篇關(guān)于Oracle連續(xù)相同數(shù)據(jù)的統(tǒng)計,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01

最新評論