sql*loader是一個程式,用來把文字檔案裡面的資料,匯入到Oracle資料庫裡面。
下面是一個簡單的例子:
SQL*Loader
首先需要一個控制檔案test_main.ctl,內容如下:
LOADDATA
INFILE*
INTOTABLEtest_main
FIELDSTERMINATEDBY","
(ID,VALUE)
BEGINDATA
1,Test
其中,
第一行LOADDATA意思是告訴SQL*Loader,要幹啥?這裡是載入資料。
第二行INFILE*意思是資料從哪裡來?這裡是包含在控制檔案中。
第三行INTOTABLE意思是資料要導到哪裡?這裡是要到test_main表。
第四行FIELDSTERMINATEDBY意思是資料之間用什麼符號分隔?這裡是用逗號分隔。
第五行是資料要按什麼順序寫到列裡面
第六行BEGINDATA是告訴SQL*Loader,後面的都是資料了。
然後開始執行sqlldr程式
D:\temp>sqlldruserid=test/test123control=test_main.ctl
SQL*Loader:Release10.2.0.1.0-Productionon星期日3月1314:58:222011
Copyright(c)1982,2005,Oracle.Allrightsreserved.
SQL*Loader-601:對於INSERT選項,表必須為空。表TEST_MAIN上出錯
在SQLPlus中,
SQL>truncatetabletest_main;
表被截斷。
以後,再次測試執行
SQL*Loader:Release10.2.0.1.0-Productionon星期日3月1314:58:562011
達到提交點-邏輯記錄計數1
sql*loader是一個程式,用來把文字檔案裡面的資料,匯入到Oracle資料庫裡面。
下面是一個簡單的例子:
SQL*Loader
首先需要一個控制檔案test_main.ctl,內容如下:
LOADDATA
INFILE*
INTOTABLEtest_main
FIELDSTERMINATEDBY","
(ID,VALUE)
BEGINDATA
1,Test
其中,
第一行LOADDATA意思是告訴SQL*Loader,要幹啥?這裡是載入資料。
第二行INFILE*意思是資料從哪裡來?這裡是包含在控制檔案中。
第三行INTOTABLE意思是資料要導到哪裡?這裡是要到test_main表。
第四行FIELDSTERMINATEDBY意思是資料之間用什麼符號分隔?這裡是用逗號分隔。
第五行是資料要按什麼順序寫到列裡面
第六行BEGINDATA是告訴SQL*Loader,後面的都是資料了。
然後開始執行sqlldr程式
D:\temp>sqlldruserid=test/test123control=test_main.ctl
SQL*Loader:Release10.2.0.1.0-Productionon星期日3月1314:58:222011
Copyright(c)1982,2005,Oracle.Allrightsreserved.
SQL*Loader-601:對於INSERT選項,表必須為空。表TEST_MAIN上出錯
在SQLPlus中,
SQL>truncatetabletest_main;
表被截斷。
以後,再次測試執行
D:\temp>sqlldruserid=test/test123control=test_main.ctl
SQL*Loader:Release10.2.0.1.0-Productionon星期日3月1314:58:562011
Copyright(c)1982,2005,Oracle.Allrightsreserved.
達到提交點-邏輯記錄計數1