1、采用insert into values 語句插入一條,寫很多條語句即可多條數(shù)據(jù),這種主要針對于離散值以及一些基礎(chǔ)信息的錄入,如:insert into test(xh,mc) values('123','測試');

創(chuàng)新互聯(lián)公司主要為客戶提供服務(wù)項目涵蓋了網(wǎng)頁視覺設(shè)計、VI標志設(shè)計、成都全網(wǎng)營銷推廣、網(wǎng)站程序開發(fā)、HTML5響應(yīng)式網(wǎng)站建設(shè)公司、手機網(wǎng)站開發(fā)、微商城、網(wǎng)站托管及成都網(wǎng)站改版、WEB系統(tǒng)開發(fā)、域名注冊、國內(nèi)外服務(wù)器租用、視頻、平面設(shè)計、SEO優(yōu)化排名。設(shè)計、前端、后端三個建站步驟的完善服務(wù)體系。一人跟蹤測試的建站服務(wù)標準。已經(jīng)為成都主動防護網(wǎng)行業(yè)客戶提供了網(wǎng)站維護服務(wù)。
如果插入的數(shù)據(jù)有規(guī)律,可利用for、loop循環(huán)插入,主要用于批量生成測試數(shù)據(jù)
begin
for i in 1 .. 100 loop
insert into test(xh,mc) values(i||'','測試');
end loop;
end ;。
2、采用insert into selct from 語句來一次性插入一個集合,這種主要依據(jù)于要插入的數(shù)據(jù)源已經(jīng)存儲于數(shù)據(jù)庫對象中,或者利用dual虛表來構(gòu)造數(shù)據(jù),經(jīng)過加工后寫入一個集合。
insert into test (xh,mx) select '123','測試' from dual;
3、采用plsql等工具、或者oracle的imp、impdp命令來導(dǎo)入,這種主要用數(shù)據(jù)庫與數(shù)據(jù)庫之間的大批量數(shù)據(jù)導(dǎo)入,導(dǎo)入的數(shù)據(jù)格式為plsql的pde、oracle的dmp等。dmp文件可使用
table_exists_action參數(shù)控制導(dǎo)入動作:replace替換原表,truncate清除原表數(shù)據(jù)再導(dǎo)入,append增量導(dǎo)入數(shù)據(jù),當然impdp數(shù)據(jù)泵的導(dǎo)入要依賴于directory路徑。
impdp 用戶名/密碼 dumpfile=123.dmp logfile=123.log directory=imp_dir tables=test table_exists_action=append
4、使用excel文件直接拷貝。這種主要用于要寫入的數(shù)據(jù)已是excel文件或者行列分明的其它格式文件,每一列的值和表結(jié)構(gòu)相對應(yīng),可直接打開表的行級鎖,把數(shù)據(jù)拷貝進入。
打開行級鎖方法:
select t.*,rowid from 表名 t where 1=2;
select * from ?表名 ?where 1=2 for update;
直接把excel數(shù)據(jù)拷貝到表里
Oracle批量插入數(shù)據(jù)可用PL/SQL的命令窗口執(zhí)行。
使用工具:PL/SQL
步驟:
1、登錄PL/SQL到指定數(shù)據(jù)庫。
2、登錄后,點擊左上方“紙片”狀圖標,然后選擇“Command Window”選項,進入命令窗口。
3、然后在本地電腦編寫insert(即插入語句),每句以逗號分隔。如圖:
4、然后為文件起名字,以.sql為文件后綴,如“執(zhí)行.sql”,保存到指定路徑,如c盤data目錄下。
5、在打開的命令窗口下執(zhí)行如下語句:
@c:\data\執(zhí)行.sql
其中“@”為必寫內(nèi)容,“c:\data\”為sql文件保存路徑,“執(zhí)行.sql”為要執(zhí)行的腳本文件名。
6、敲擊回車鍵執(zhí)行,執(zhí)行后會有成功提示,如圖:
7、最后去目標表查詢數(shù)據(jù),檢驗結(jié)果成功。其中如圖的四條為新插入的數(shù)據(jù)。
需要生成的SQL
insert into TMP_UPSTATE_CASEKEY values('TMP0000001', 1, sysdate);
存儲過程實現(xiàn)
create or replace procedure proc_casekey_upstate
as
casekey char(14);
begin
for i in 1..10000000 loop
casekey := 'TMP'||lpad(i,7,0); -- TMP0000001
insert into TMP_UPSTATE_CASEKEY values(casekey, 1, sysdate);
end loop;
commit;
end;
begin
proc_casekey_upstate();
end;
測試發(fā)現(xiàn)生成一千萬條數(shù)據(jù)用了14分鐘左右,性能還是可以了,如果先去掉TMP_NUM_STATUS_ID的外鍵估計更快。
或者:
insert into TMP_UPSTATE_CASEKEY select 'TMP'||LPAD(rownum,7,0),1,sysdate from dual connect by level = 1000000;
可用rownum來查詢。
如emp表中有如下數(shù)據(jù):
現(xiàn)在要求只查5行數(shù)據(jù),可用如下語句:
1
select?*?from?emp?where?rownum=5;
結(jié)果如下:
你好!
簡單點的方法:
在表中增加一個列,為自增序列,然后執(zhí)行:
update 表 set 自增序列=rownum;
這樣快速,還不會出錯。
您好,提問者:
1、使用變量替換,比如:
insert?into?XX?values(id,?'name');
2、把sql寫入文本中,就是insert into ....,關(guān)閉oracle的反饋
set?feedback?off;?--?關(guān)閉oracle的自動反饋
@D:\insert.txt
--?或者
start?D:\insert.txt
當前題目:oracle批如何增行,oracle如何自增
本文路徑:http://chinadenli.net/article38/hsjosp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、電子商務(wù)、自適應(yīng)網(wǎng)站、網(wǎng)站設(shè)計、面包屑導(dǎo)航、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)