Sql 将csv文件导入oracle数据库
我正在尝试将数据从txt文件导入表。TXT文件有5条记录。 “ext.txt”是我的文件。“IMPORT”是一个目录 记录是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),
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文件中的错误,然后再发布一个相同的问题,为什么要两次否决这两个问题?只需关闭最差的一个(在本例中,另一个关闭一次,因为没有测试数据或工作代码)。