我正在将数据从文本加载到vertica机器。
源
*.csv
靶
HP vertica database
情况下:1
我得到的文本文件如下
emp.txt
empno,ename
1,hari
2,suri
我正在使用以下过程将文本文件中的数据加载到vertica数据库中。
copy scott.emp from 'emp.txt'
delimiter ',' null as '' skip 1 exceptions 'emp-error.log';
它正在成功加载数据。
情况下:2
我正在获取文本文件
dept.txt
"sno","sname"
"1",""
"2","suri __ is \ in uk
for 3.3 years"
这里我也使用相同的过程
copy scott.dept from 'dept.txt'
delimiter ',' null as '' skip 1 exceptions 'emp-error.log;
我收到错误,数据未加载到目标表
任何正文都可以帮助我如何在没有任何错误的情况下加载数据。
提前感谢。
答案 0 :(得分:1)
你没有真正提到你得到的错误,但是......
enclosed by '"'
设置为COPY
选项。您可以在列级别或COPY语句级别执行此操作。如果引号不存在,COPY
将假装在分隔符之间引用整列。enclosed by
允许您在引号中嵌入delimiters
而没有任何问题,但它不允许record terminators
这样做。您必须预处理数据才能使用COPY
。您的数据样本太小,我无法确切知道,但您可以执行类似的操作,例如在每条记录的末尾添加分号(可能是一个awk
脚本,用于查找以{{1结尾的行并在最后添加"
。然后在;
声明中使用record terminator ';'
。