久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Oracle如何編寫(xiě)一個(gè)sqlldr實(shí)例

瀏覽:134日期:2023-09-12 20:47:51
目錄準(zhǔn)備工作具體步驟1、整理要導(dǎo)入數(shù)據(jù),去除列名另存為csv文件2、在Oracle上創(chuàng)建存放數(shù)據(jù)的Table3、創(chuàng)建ctl文件1.在sqlldr里創(chuàng)建一個(gè)新的文本文件2.編輯信息如下3.將文本文件另存為 sn_orderitem_20210412.ctl4、編寫(xiě)Windows批處理文件1.在sqlldr里創(chuàng)建一個(gè)新的文本文件2.編輯信息如下5、雙擊運(yùn)行Windows批處理文件6、查詢結(jié)果準(zhǔn)備工作

首先在D盤(pán)創(chuàng)建文件夾,命名為sqlldr

具體步驟1、整理要導(dǎo)入數(shù)據(jù),去除列名另存為csv文件

特別注意:csv文件是純文本文件,一般以逗號(hào)分隔,如果導(dǎo)入的數(shù)據(jù)中存在逗號(hào),可以給表格中的數(shù)據(jù)加上雙引號(hào)將數(shù)據(jù)括起來(lái)。

數(shù)據(jù)內(nèi)容:

sn_orderitem_20210412

idorder_iditem_iditem_namepriceitem_numAB001A0011001A0.151AB002A0011002B201AB003A0011003C402AB004A0051001A0.151AB005A0051004D2006AB0015A0151005E40.51AB0016A0191006F501AB0017A0191007G24.52AB0018A0201008H10.31AB0001A,B

結(jié)果:

給表格數(shù)據(jù)加上引號(hào):!"@!"

標(biāo)將數(shù)據(jù)另存為CSV UTF-8(Comma delimited)格式,存入sqlldr文件夾

2、在Oracle上創(chuàng)建存放數(shù)據(jù)的Tablecreate table sn_orderitem_20210412(idvarchar(20), order_id varchar(20), item_id varchar(20), item_name varchar(20),price number,item_num number);3、創(chuàng)建ctl文件1.在sqlldr里創(chuàng)建一個(gè)新的文本文件2.編輯信息如下load datacharacterset UTF8infile 'D:\sqlldr\sn_orderitem_20210412.csv'append into table sn.sn_orderitem_20210412fields terminated by ','trailing nullcols(id OPTIONALLY ENCLOSED BY ''',order_id OPTIONALLY ENCLOSED BY ''',item_id OPTIONALLY ENCLOSED BY ''',item_name OPTIONALLY ENCLOSED BY ''',price OPTIONALLY ENCLOSED BY ''',item_num OPTIONALLY ENCLOSED BY ''' )3.將文本文件另存為 sn_orderitem_20210412.ctl

解析:

load data --控制文件標(biāo)識(shí)characterset UTF8 --設(shè)置編碼格式,防止中文亂碼

infile 'XXX.csv' --即將導(dǎo)入的csv文件及路徑append into table XXX --Oracle上創(chuàng)建的表,在原表進(jìn)行追加數(shù)據(jù)fields terminated by ','--以逗號(hào)分隔 (分隔方式可以是空格,制表符X'09'……)trailing nullcols --允許某地為空值,保證缺少部分字段時(shí),整個(gè)表格不錯(cuò)位(XX optionally enclosed by '"' --每個(gè)字段都是用“”包圍(當(dāng)文本里的字符和分隔符有沖突是可以使用)…… )

拓展:

導(dǎo)入數(shù)據(jù)共有四種方式:

insert:為缺省方式,在數(shù)據(jù)裝載開(kāi)始時(shí)要求表為空;append:在表中追加新記錄;replace:刪除舊記錄,替換成新裝載的記錄;truncate:刪除舊記錄(用 truncate table 語(yǔ)句),替換成新裝載的記錄。4、編寫(xiě)Windows批處理文件1.在sqlldr里創(chuàng)建一個(gè)新的文本文件2.編輯信息如下D:\app\isadmin\product\11.2.0\dbhome_1\BIN\SQLLDR.EXE userid=test/test@local11g control=D:\sqlldr\sn_orderitem_20210412.ctl log=D:\sqlldr\sn_orderitem_20210412.log bad=D:\sqlldr\sn_orderitem_20210412.bad SILENT=(HEADER,FEEDBACK) errors=0

3.將文本文件另存為 sn_orderitem_20210412.bat

解析:

D:\app\isadmin\product\11.2.0\dbhome_1\bin\sqlldr.exe --sqlldr工具調(diào)用

userid=test/test@local11g --用戶名/密碼@庫(kù)名

control=D:\sqlldr\sn_orderitem_20210412.ctl--控制文件絕對(duì)路徑

log=D:\sqlldr\sn_orderitem_20210412.log --指定日志文件路徑

bad=D:\sqlldr\sn_orderitem_20210412.bad --指定錯(cuò)誤文件路徑

silent=(header,feedback) --隱藏?cái)?shù)據(jù)載入過(guò)程中的提示信息

errors=0 --允許錯(cuò)誤行數(shù)為0

5、雙擊運(yùn)行Windows批處理文件6、查詢結(jié)果

導(dǎo)入Oracle里的數(shù)據(jù)會(huì)帶上雙引號(hào),回去看了一下csv文件發(fā)現(xiàn),從excel里加引號(hào)后導(dǎo)出csv文件后,雙引號(hào)會(huì)變?yōu)槿?hào),故造成此結(jié)果,我的方法直接在txt文件中將三引號(hào)替換為雙引號(hào)后再導(dǎo)入,如果有其它方法的小伙伴可以評(píng)論區(qū)交流~當(dāng)然如果你的數(shù)據(jù)里沒(méi)有出現(xiàn)逗號(hào),可以不需要用引號(hào)來(lái)分隔,因此也不會(huì)出現(xiàn)這樣的問(wèn)題啦除了轉(zhuǎn)化為csv,也可以用txt文件進(jìn)行導(dǎo)入,只需要將excel轉(zhuǎn)化為以制表符分隔的txt文本就可以了創(chuàng)建.bat Windows批處理文件的便利之處是可以重復(fù)使用,只需修改控制文件中需要變動(dòng)的參數(shù)后再次運(yùn)行就可以了,也可以進(jìn)行批量導(dǎo)入

到此這篇關(guān)于Oracle如何編寫(xiě)一個(gè)sqlldr實(shí)例的文章就介紹到這了,更多相關(guān)Oracle編寫(xiě)sqlldr內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

主站蜘蛛池模板: 宁南县| 大洼县| 驻马店市| 福海县| 边坝县| 鄂伦春自治旗| 五华县| 眉山市| 阿拉善盟| 信丰县| 井研县| 山东省| 开平市| 新安县| 甘洛县| 玛纳斯县| 渭源县| 韶山市| 林州市| 开平市| 通河县| 锡林浩特市| 鹤庆县| 沙河市| 洪江市| 秀山| 肇东市| 邻水| 兰坪| 白河县| 赤城县| 石家庄市| 民和| 荣成市| 砀山县| 岚皋县| 双牌县| 治多县| 应城市| 大渡口区| 岳普湖县|