Oracle:导入CSV文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle:导入CSV文件相关的知识,希望对你有一定的参考价值。

我一直在寻找一段时间,但似乎无法找到答案所以这里...

我有一个CSV文件,我想导入Oracle(9i / 10i)中的表。

后来我打算用这个表作为另一种用途的查找。

这实际上是我正在研究的一种解决方法,因为使用IN子句查询超过1000个值的事实是不可能的。

如何使用SQLPLUS完成?

谢谢你的时间! :)

答案

SQL Loader有助于将csv文件加载到表中:SQL*Loader

如果你只想要sqlplus,那就有点复杂了。您需要找到sqlloader脚本和csv文件,然后运行sqlldr命令。

另一答案

您可以使用的另一个解决方案是SQL Developer。

有了它,您就可以从csv文件导入(其他分隔文件可用)。

只需打开表格视图,然后:

  • 选择行动
  • 进口日期
  • 找到你的文件
  • 选择你的选择。

您可以选择让SQL Developer为您执行插入操作,创建sql插入脚本,或者为SQL Loader脚本创建数据(我自己没有尝试过此选项)。

当然,如果您只能使用命令行,那么所有这些都没有实际意义,但如果您能够在本地使用SQL Developer进行测试,则可以始终部署生成的插入脚本(例如)。

只需在2个已经非常好的答案中添加另一个选项。

另一答案

另一种解决方案是使用外部表:http://www.orafaq.com/node/848

当你必须非常快速地进行这种导入时使用它。

另一答案

SQL Loader是要走的路。我最近从csv文件中加载了我的表,这个概念的新手,想分享一个例子。

LOAD DATA
    infile '/ipoapplication/utl_file/LBR_HE_Mar16.csv'
    REPLACE
    INTO TABLE LOAN_BALANCE_MASTER_INT
    fields terminated by ',' optionally enclosed by '"'
    (
    ACCOUNT_NO,
    CUSTOMER_NAME,
    LIMIT,
    REGION

    )

将控制文件和csv放在服务器上的相同位置。找到sqlldr exe并对其进行invoce。

sqlldr userid / passwd @ DBname control = Ex:sqlldr abc / xyz @ ora control = load.ctl

希望能帮助到你。

另一答案

有人让我发布一个链接到the framework!我在Open World 2012上发表过的文章。这是一篇完整的博客文章,演示了如何使用外部表构建解决方案。

另一答案

Oracle 18c你可以使用Inline External Tables

内联外部表使外部表的运行时定义成为SQL语句的一部分,而无需将外部表创建为数据字典中的持久对象。

对于内联外部表,可以在运行时在SELECT语句中使用与创建具有CREATE TABLE语句的外部表相同的语法。在查询块的FROM子句中指定内联外部表。包含内联外​​部表的查询还可以包括用于连接,聚合等的常规表。

INSERT INTO target_table(time_id, prod_id, quantity_sold, amount_sold)
SELECT time_id, prod_id, quantity_sold, amount_sold
FROM   EXTERNAL (   
    (time_id        DATE NOT NULL,     
     prod_id        INTEGER NOT NULL,
     quantity_sold  NUMBER(10,2),
     amount_sold    NUMBER(10,2))     
    TYPE ORACLE_LOADER     
    DEFAULT DIRECTORY data_dir1
    ACCESS PARAMETERS (
      RECORDS DELIMITED BY NEWLINE
      FIELDS TERMINATED BY '|')     
   LOCATION ('sales_9.csv') REJECT LIMIT UNLIMITED) sales_external;

以上是关于Oracle:导入CSV文件的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段

oracle导入csv文件

把csv文件导入到SQL Server表中

Oracle:导入CSV文件

使用 SQL Developer 将 CSV 文件导入 Oracle

Logstash导入csv到es