vertica 使用默认值执行复制命令

vertica executing copy command with default value

我正在尝试 运行 复制基于 csv 串联填充数据库的命令,但是需要对一列进行硬编码

Table 列名称为:

col1,col2,col3

文件内容是(只是数字,名称是数据库列名):

1234,5678,5436

我需要的是一种插入数据的方法,如下所示:基于我的示例:

我想放入数据库:

col1  col2  col3
1234  5678  10

注意:10 为硬编码,忽略 db

处 col3 的实际值

我应该使用 FILLER 吗?如果是这样,命令是什么?

我的出发点是:

COPY SAMPLE.MYTABLE (col1,col2,col3) 
FROM LOCAL 'c:\1\test.CSV' 
UNCOMPRESSED DELIMITER ',' NULL AS 'NULL' ESCAPE AS '\' RECORD TERMINATOR ' ' ENCLOSED BY '"' DIRECT STREAM NAME 'Identifier_0' EXCEPTIONS 'c:\1\test.exceptions' 
REJECTED DATA 'c:\1\test.rejections' ABORT ON ERROR NO COMMIT;

你能帮忙加载那些列(基本上是 col3)吗?

谢谢

您只需要使用虚拟填充符来解析(但忽略)csv 中的第三个值。然后你需要使用 AS 做一个表达式来将第三个 table 列分配给一个文字。

我已将其添加到您的 COPY 下面。但是,我不确定我是否理解您的 RECORD TERMINATOR 设置。我会仔细看一下。也许您遇到了 copy/paste 问题或其他问题。

COPY SAMPLE.MYTABLE (col1, col2, dummy FILLER VARCHAR, col3 AS 10) 
FROM LOCAL 'c:\test.CSV' UNCOMPRESSED DELIMITER ',' 
NULL AS 'NULL' ESCAPE AS '\' RECORD TERMINATOR ' ' 
ENCLOSED BY '"' DIRECT STREAM NAME 'Identifier_0' 
EXCEPTIONS 'c:\test.exceptions' REJECTED DATA 'c:\test.rejections' 
ABORT ON ERROR NO COMMIT;