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

问题描述:

的“REJECTMAX”参数是执行复制命令的技术即使是在CSV无效的记录Vertica - 有没有办法通过代码检索被拒绝的记录?

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

我不知道是否有一种方式,我可以得到一个文本被拒绝的记录打印到被拒绝的文件,所以我可以登录到应用程序错误日志。

+0

要问明显,您的源数据记录是否有任何种类的主键可用于区分插入/拒绝哪些记录? –

+0

否............. – kevinjoeiy

+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 

这是你在找什么?