oracle批量构造数据,oracle批量构造数据方法 - rd_clp的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
1.一種是只要數據條數,至于里面內容可以是序列方式,另外可能幾個表中相互
id的關聯,那建議用存諸過程寫.
表a(id,name)有學員的信息
表b(id,testid,subject,score)有學員的考試成績
假設表a與表b的id都是有seq的自增長系列;表b.testid=表a.id,現需要構造一
千個學員和科目學分。
以下存儲過程內容:
declare
cnt number;
mytestid number;
myname varchar2(32);
mysubject varchar2(32);
cnt:=1;
myname:="studentname"
mysubject:="subjectname"
loop
if (cnt<=1000)then
select seq_a.nextval into mytestid from dual;
insert into a (id,name) values (mytestid,myname||cnt);
insert into b(id,testid,subject,scre)values
(seq_b.nextval,mytestid,mysubject||cnt,80);
cnt:=cnt+1;
else
exit;
end id;
end loop;
commit;
end;
另一種方法:數據的內容要多樣化,且內容要真實一些,不可以是用cnt的內容,
那建議用cvs的方式準備好各類內容數據,運行一個腳本即可。
假設學員信息表A已有,現需要1000條真實科目分數數據。
第一步:先準備ctl腳本:如:b.ctl (可以用記事本方式寫)
1.options (skip=1,rows=100)
2.load data
3.infile "b.csv"
4.truncate
5.into table b
6.fields terminated by ","
7.optionally enclosed by '"'
8.trailing nullcols
9.(
10. id "seq_b.nextval",
11. testid,
12. subject,
13. score
14 )
以上ctl每行詳細說明:
1.skip 跳過csv文件的第一列(一般第一列為列名);rows表示每次取多少條運
行,分批運行減少性能問題
3.是你csv的文件的名字
4.寫入數據庫的方式:truncate為清除表中數據后,寫入csv中的內容;append
為直接把csv中內容追加入數據庫;主要用到這二個,其他不介紹了。
5. 寫入數據庫的表名
6,7行建議不要改動,為數據分隔處理用
10-13注意:有seq的,需要像10那樣寫,如果有date類型,舉列,字段列名為
modify_time的則寫成: modif_tiyme date‘yyyy-mm-dd hh24:mi:ss'
第二步:準備b.CSv內容,請xls里直接錄入即可
csv第一列 id testid subject score
第三步:用sqlldr執行
注意:oracle客戶端裝好后,要把oracle\bin目錄加到環境變量里去,這樣才能
使用sqlldr.exe可執行文件
步驟:
在你的windows端,打開,點運行,錄入cmd,切換到你存上面二個文檔的目錄
然后錄入以下格式:sqlldr 數據庫登錄名/密碼@數據庫名? control=b.ctl
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的oracle批量构造数据,oracle批量构造数据方法 - rd_clp的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python牛顿迭代公式_python计
- 下一篇: 残疾人计算机高考试题,残疾人勇夺玉溪高考