Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将csv文件导入oracle数据库_Sql_Oracle_Csv - Fatal编程技术网

Sql 将csv文件导入oracle数据库

Sql 将csv文件导入oracle数据库,sql,oracle,csv,Sql,Oracle,Csv,我正在尝试将数据从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),

我正在尝试将数据从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;

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

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')
);
前提是您已正确设置
导入
目录

在11.2.0.4中测试

至于上述评论中给出的原因。始终首先检查
.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)

更改
ename CHAR(4),
ename CHAR(20)
。顺便说一句,你可以先检查test.bad文件中的错误,然后再发布一个相同的问题,为什么要两次否决这两个问题?只需关闭最差的一个(在本例中,另一个关闭一次,因为没有测试数据或工作代码)。