方法一:
1、在本地建立一個Access資料庫,將Excel資料先匯入到Access。可直接匯入點擊滑鼠右鍵,選擇匯入,檔案類型選擇要匯入的Excel檔案,也可通過建立宏用TransferSpreadsheet函數實現。
2、在本地建立ODBC,連結oracle資料庫。將oracle中需要匯入資料的表以連結資料表的方式在本地Access中建立(千萬不要使用匯入表)。
3、在Access資料庫中建立插入查詢將匯入好的Excel資料匯入到oracle中。
方法二:
先把Excel另存新檔.csv格式檔案,如test.csv,再編寫一個insert.ctl
用sqlldr進行匯入!
insert.ctl內容如下:
load data --1、控制檔案標識
infile 'test.csv' --2、要輸入的資料檔案名為test.csv
append into table table_name --3、向表table_name中追加記錄
fields terminated by ',' --4、欄位終止於',',是一個逗號
(field1,
field2,
field3,
...
fieldn)-----定義列
列對應順序
注意括弧中field排列順序要與csv檔案中相對應
然後就可以執行如下命令:
sqlldr user/password control=insert.ctl
例子:
首先我先建了一個表
SQL> create table biao
2 (username varchar2(10),
3 date1 varchar2(20),
4 date2 varchar2(20),
5 date3 varchar2(20)
6 );
然後寫了6.txt檔案,存在c:/目錄下
內容:
姓 名 工作時間 入黨時間 增加時間
200109 20040919 200409
200109 20050331 20050331
200109 20050331 20050331
200109 20050331 20050331
200109 20050331 20050331
200109 20041220 20041220
寫得ctl檔案如下,存在c:/目錄下
LOAD DATA
INFILE '6.txt'
INTO TABLE BIAO
fields terminated by x'0d' trailing nullcols
(
USERNAME,
DATE1,
DATE2,
DATE3
)
再 命令提示字元中寫的
sqlldr uerid=system/lllll control =input.txt
ctl檔案為(ctl的檔案名稱必須為表名):
Load data
infile 'excelName.txt'
append into table tableName(你的表名)
fields terminated by X'09'
(A,B)
注意:
你先將你的文字檔的資料放入到excel中,然後將它已“定位字元分隔”的形式儲存
excelName.txt就為你報儲存的文字檔
再將ctl、txt檔案放入C盤根目錄
最後在dos下輸入:sqlldr 使用者名稱/使用者密碼@sid control=tableName
要解決的問題有:linux尋找目前的目錄絕對路徑及在目前的目錄下如何運行Dos命令.