2017-01-23 59 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