2017-01-23 103 views
0

我知道這個問題經常被問到,但我無法自己管理它。sql oracle - 導入文本文件

我有一個列數據文本文件存儲在我的桌面上。 (C:\ Users \ Desktop) 該文件稱爲ids.txt。

首先,我在SQL叫tmp_target_ids做了一個表,下面的代碼:

CREATE TABLE tmp_target_ids 
(ids number(9,0)); 

現在我要加載的文本文件導入此表,但無法弄清楚,爲什麼它不工作。

LOAD DATA LOCAL INFILE 'C:/Users/Desktop/ids.txt' 
INTO TABLE tmp_target_ids COLUMNS TERMINATED BY '\t'; 

如何將本地數據加載到sql數據庫中?

更新:我使用Oracle,我設法手動加載數據,但還是希望有一個腳本

+0

其中[甲骨文手冊]( https://docs.oracle.com/database/121/SQLRF/toc.htm)你有沒有發現'加載數據'? –

+0

@a_horse_with_no_name - Oracle購買Sun的可愛副作用... :-)例如https://docs.oracle.com/cd/E17952_01/mysql-5.0-en/load-data.html –

+0

您是否使用本地Oracle服務器? –

回答

3

假設你可以使用SQLLOADER加載該文件,你可以寫這樣一個CTL文件:

d:\ ids.ctl

LOAD DATA 
INFILE 'd:\ids.txt' 
INTO TABLE tmp_target_ids 
FIELDS TERMINATED BY "\t" 
(
    ids 
) 

說,你必須加載如下所示的文件:

d:\ ids.txt

10 
100 
999 

如果您運行以下命令:

sqlldr user/[email protected] d:\ids.ctl 

這是你會得到什麼:

SQL> select * from tmp_target_ids; 

     IDS 
---------- 
     10 
     100 
     999 
+0

我試過了,第一個腳本告訴我:缺少SELECT關鍵字,指的是ID。 – Lisette

+1

這不是一個腳本,而是一個在SQLLoader中使用的CTL文件。如果你遵循所有的步驟,通過將該部分保存到一個文件中,然後運行SQLLoader,Loader會將文本文件加載到你的表中 – Aleksej

+0

我是新來的sql,所以我不知道我是否已經使用了sqlloader當我說我手動加載數據(數據導入嚮導?)。是否可能在創建表下有一個腳本將數據加載到表中?所以我可以按運行,數據加載? – Lisette