將excel資料匯入oracle中

來源:互聯網
上載者:User

A、有一個比較麻煩但保證成功的方法。
1、在本地建立一個Access資料庫,將Excel資料先匯入到Access。可直接匯入點擊滑鼠右鍵,選擇匯入,檔案類型選擇要匯入的Excel檔案,也可通過建立宏用TransferSpreadsheet函數實現。
2、在本地建立ODBC,連結oracle資料庫。將oracle中需要匯入資料的表以連結資料表的方式在本地Access中建立(千萬不要使用匯入表)。
3、在Access資料庫中建立插入查詢將匯入好的Excel資料匯入到oracle中。

此方法保證成功。

B、也可以匯入sql server 用它的匯出工具匯入oracle 但對一些image欄位支援不好,你如果
沒這種欄位就行。

用MS_sqlserver 提供的資料匯出匯入功能可以方便的把excel方便的匯入oracle資料庫

C、一種方法:
先把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

有關SQLLDR的問題

控制檔案:input.ctl,內容如下:
  load data           --1、控制檔案標識
  infile 'test.txt'       --2、要輸入的資料檔案名為test.txt
  append into table test    --3、向表test中追加記錄
  fields terminated by X'09'  --4、欄位終止於X'09',是一個定位字元(TAB)
  (id,username,password,sj)   -----定義列對應順序

其中append為資料裝載方式,還有其他選項:
a、insert,為預設方式,在資料裝載開始時要求表為空白
b、append,在表中追加新記錄
c、replace,刪除舊記錄,替換成新裝載的記錄
d、truncate,同上

問題:SQLLDR能不能保留表中原有的資料,如果發現KEY重複時,再UPDATE對應的記錄?

D、先?EXCEL檔案??成TXT檔案
再使用SQLLOADER

E、將EXCEL檔案儲存成*.csv格式. 然後用sqlload來匯入表中.

sqlload是Oracle內建的資料倒入工具,應該是沒有視覺化檢視的(至少我一直用命令列)。
直接在命令列下敲入sqlldr即可得到協助。

F、如果你的單個檔案不大的情況下(少於100000行), 可以全選COPY ,然後用PL/SQL.:
select * from table for update. 然後開啟鎖, 再按一下加號. 滑鼠點到第一個空格然後粘貼. COMMIT即可.(小竅門, ORACLE不支援的, 但很好用, 不會有問題)

G、Golden的imp/exp工具可以直接匯入文字檔,非常簡單

下面這個不知道是針對以上哪種方法的:
      放心:excel檔案最多隻有65536條記錄
      不放心:曾經如此導過,但當有中文欄位時可能出現異常(PL/SQL DEV5)

我用的是A,OK,時間倉促,其他的沒有試過。

http://www.itpub.net/101803.html 這個文章如是說:

你用的方法可能是:
1. 存成txt檔案, 再用sql*loader
2. 存成txt檔案, 再用第三方工具(如pb, delphi, toad, pl/sql dev等)匯入.

sql*loader用起來費勁, 為了小小的需求, 裝一個第三方工具麻煩.
看看我的方法.

比如檔案中有id, name兩列(分別為A列和B列), 要匯入的表為person(person_id, person_name)

在excel 檔案的sheet的最右列, 添加一列, 對應第一行資料的儲存格寫入以下內容:

= "INSERT INTO PERSON(PERSON_ID, PERSON_NAME) VALUES('" & A1 & "', '" & B1 & "');"

然後把這一行複製到所有資料行對應的列中.

這一列的內容拷貝出去儲存, 即成為可以直接在sql*plus下啟動並執行指令碼.

方法一?日期型?位不適用

A、把Excel檔案導到Acess裡,然後開啟要導資料的表。

開啟 PLSQL DEV,開啟一個SQL視窗,執行
select * from [tab] for update

然後一列一列的從Acess裡copy & paste 。

B、excel->copy->pl/sql developer>paste

實際操作時發現,使用 copy / paste 經常會發生莫其妙的問題。尤其是通過 access ( ODBC) copy 入 oracle 時。

EXECL -->SAVE AS *.CSV(COMMA DELIMITED). THEN LOAD IT DIRECTLY.

CTL FILE EXAMPLE
------------
Load Data
INFILE 'E:\AA.csv'
TRUNCATE
INTO TABLE AA
FIELDS TERMINATED BY ','
(A,
B)

C、在ACCESS中將ORACLE TABLE 映射,然後直接插入即可。很方便,也沒發現有資料錯誤問題。
曾經有一個很麻煩的LONG RAW問題,用這個辦法也解決了

D、用SQL*XL就可以直接將EXCEL檔案匯入ORACLE,很方便的,我一直用SQL*XL。

E、我常用的辦法是從excel中copy到ultraEdit中,然後用列編輯功能加上insert into ....等等,也挺好用

F、用plsql developer,很好用的,直接copy就可以了

在pl/sql developer 中選擇表的多個欄位名,然後就可以paste 了

G、用odbc加pb的資料管道可以在不同的資料庫(文本)之間傳輸資料

H、odbc+pb

用不同的odbc驅動程式串連不通的資料庫
然後在pb環境中啟動資料管道,利用資料管道傳輸資料

I、先倒成。DBF的檔案,再用DELPHI DATABASE DESKTOP 匯入ORACLE很方便的,也且也可以支援空值匯入。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.