【问题标题】:import csv file to oracle database将csv文件导入oracle数据库
【发布时间】:2014-10-03 05:21:06
【问题描述】:

我正在尝试将数据从 txt 文件导入表。 TXT 文件有 5 条记录。 'ext.txt' 是我的文件。'IMPORT' 是一个目录。

记录是

7499,ALLEN,SALESMAN,30
7521,WARD,SALESMAN,30
7566,JONES,MANAGER,20
7654,MARTIN,SALESMAN,30

我尝试了下面的查询,但它只将第三条记录插入到外部表中。

谁能告诉我这个ans解决方案插入所有行的原因。

create table ext_tab (
  empno  CHAR(4),
  ename  CHAR(20),
  job1    CHAR(20),
  deptno CHAR(2)
)
ORGANIZATION EXTERNAL (
TYPE ORACLE_LOADER
DEFAULT DIRECTORY IMPORT
ACCESS PARAMETERS (
  RECORDS DELIMITED BY NEWLINE
  BADFILE IMPORT:'test.bad' 
  LOGFILE IMPORT:'test.log' 
  FIELDS TERMINATED BY ',' (
    empno char(4) ,   
    ename char(4), 
    job1 CHAR(20),
    deptno CHAR(2)
   )
)
LOCATION (import:'ext.txt')
)
PARALLEL 5
REJECT LIMIT UNLIMITED;

【问题讨论】:

  • 在您的导入规范中将 ename char(4), 更改为 ename char(20),。顺便说一句,您可以在此处发布之前检查 test.bad 文件是否有错误
  • 同一个问题两次被投反对票stackoverflow.com/questions/26173037/…
  • 为什么要否决这两个问题?只需关闭最差的一个(在这种情况下关闭另一个,因为没有测试数据或工作代码)。

标签: sql oracle csv


【解决方案1】:

这将适用于您给定的测试数据

CREATE TABLE ext_tab (
  empno  VARCHAR(4),
  ename  VARCHAR(20),
  job1   VARCHAR(20),
  deptno VARCHAR(2)
)
ORGANIZATION EXTERNAL (
  DEFAULT DIRECTORY import
  ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE 
    FIELDS TERMINATED BY ','
  )
LOCATION ('ext.txt')
);

前提是你已经正确设置了import目录。

在 11.2.0.4 上测试

至于上面的cmets给出的原因。始终首先检查.bad 和.log 文件(在您放置文件的目录中创建)。这些对于告诉您行被拒绝的原因非常有帮助。

我希望你在日志中有这样的错误:-

KUP-04021: field formatting error for field ENAME                 
KUP-04026: field too long for datatype                            
KUP-04101: record 1 rejected in file /import_dir/ext.txt    
KUP-04021: field formatting error for field ENAME                 
KUP-04026: field too long for datatype                            
KUP-04101: record 3 rejected in file /import_dir/ext.txt    
KUP-04021: field formatting error for field ENAME                 
KUP-04026: field too long for datatype                            
KUP-04101: record 4 rejected in file /import_dir/ext.txt    

并且只导入了 WARD,因为只有他的名字适合 CHAR(4)。

【讨论】:

    猜你喜欢
    • 2015-07-13
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-09
    相关资源
    最近更新 更多