【问题标题】:sql oracle - import text filesql oracle - 导入文本文件
【发布时间】:2017-01-23 22:40:37
【问题描述】:

我知道这个问题经常被问到,但我自己无法解决。

我的桌面上存储了一个单列数据文本文件。 (C:\用户\桌面) 该文件称为 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,我设法手动加载数据,但仍然想要一个脚本

【问题讨论】:

  • 你在哪里找到in the Oracle manual load data
  • @a_horse_with_no_name - 甲骨文收购 Sun 的一个可爱的副作用... :-) 例如docs.oracle.com/cd/E17952_01/mysql-5.0-en/load-data.html
  • 您使用的是本地 Oracle 服务器吗?
  • @a_horse_with_no_name - en.wikipedia.org/wiki/MySQL - 2008 年 1 月,Sun Microsystems 以 10 亿美元收购了 MySQL。[53] 2009 年 4 月,甲骨文公司签订了收购 Sun Microsystems [54] 的协议,该公司是 MySQL 版权和商标的所有者。
  • 您尝试读入数据库的数据是在哪台机器上,数据库在哪台机器上运行?您是否可以访问放置数据的机器上的 sqlldr 工具?

标签: sql oracle


【解决方案1】:

假设你可以使用 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/password@yourInstanceName d:\ids.ctl

这就是你得到的:

SQL> select * from tmp_target_ids;

       IDS
----------
        10
       100
       999

【讨论】:

  • 我试过了,第一个脚本告诉我:缺少SELECT关键字,指的是ids。
  • 这不是脚本,而是要在 SQLLoader 中使用的 CTL 文件。如果您遵循所有步骤,将该部分保存在文件中,然后如图所示运行 SQLLoader,Loader 会将文本文件加载到您的表中
  • 我是 sql 新手,所以当我说我手动加载数据(数据导入向导?)时,我不知道我是否已经使用过 sqlloader。是否有可能在创建表下面有一个脚本来将数据加载到表中?所以我可以直接按运行,数据就加载好了?
  • 这取决于您使用的工具。什么法师?蟾蜍,SQLDeveloper,PLSQLDeveloper,...?。例如,TOAD 甚至构建了一个 CTL 文件以与 SQLLoader 一起使用,因为 SQLLoader 在加载大文件方面比 Toad 本身效率更高。在表中加载文件的最佳方法(恕我直言)是 SQLLoader,它并不难。我刚刚向您展示了如何构建 CTL 文件以及如何启动 Loader,您只需编写我提供的文件并运行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-20
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 2010-11-28
相关资源
最近更新 更多