Vertica - 有没有办法通过代码检索被拒绝的记录?

时间:2017-10-17 11:31:17

标签: vertica

" REJECTMAX"参数是一种执行复制命令的技术,即使csv中存在无效记录

(所以,如果我有100条记录,其中9条记录无效,最大拒绝记录为10,文件将上传)

我想知道是否有一种方法可以将被拒绝的记录作为文本获取打印到被拒绝的文件中,这样我就可以将其记录到应用程序错误日志中。

1 个答案:

答案 0 :(得分:0)

这里有一个关于如何使用REJECTED DATA的示例。假设你有一个这样的表:

SQL> CREATE TABLE public.mydata ( id INTEGER ) ;
CREATE TABLE

和包含以下内容的输入文件:

$ cat /tmp/mydata
1
2
3
ABC 
4
5

显然ABC不符合整数...

所以我们跑:

SQL> COPY public.mydata FROM '/tmp/mydata' REJECTMAX 2 REJECTED DATA '/tmp/mydata.rejected' ;
NOTICE 7850:  In a multi-threaded load, rejected record data may be written to additional files
HINT:  Rejected data may be written to files [/tmp/mydata.rejected],    [/tmp/mydata.rejected.1], etc
 Rows Loaded 
-------------
       5

现在......

$ cat /tmp/mydata.rejected 
ABC

这是你在找什么?