Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 将带有null和空字符串的雪花表复制到可以使用psql copy命令导入的csv_String_Postgresql_Csv_Null_Snowflake Cloud Data Platform - Fatal编程技术网

String 将带有null和空字符串的雪花表复制到可以使用psql copy命令导入的csv

String 将带有null和空字符串的雪花表复制到可以使用psql copy命令导入的csv,string,postgresql,csv,null,snowflake-cloud-data-platform,String,Postgresql,Csv,Null,Snowflake Cloud Data Platform,所以,如果你有这个雪花表: 将表t(x字符串,y字符串)创建为select“”,null 如果您将其复制到文件格式为csv的外部后台,如果您没有将字段设置为非“无”,则会出现此错误: 如果未指定“文件格式选项”字段,\u(可选地\u括起来,\u),则无法卸载空字符串 那么,假设它被设置为'' 现在这是有意义的,因为snowflake将\N放在双引号中,因此psql副本保留了它。如果编辑t\u 0\u 0.csv并删除\N周围的双引号: ,\N 然后再次运行psql copy,然后\N将正确转换为

所以,如果你有这个雪花表:

将表t(x字符串,y字符串)创建为select“”,null

如果您将其复制到文件格式为csv的外部后台,如果您没有将字段设置为非“无”,则会出现此错误:

如果未指定“文件格式选项”字段,\u(可选地\u括起来,\u),则无法卸载空字符串

那么,假设它被设置为''

现在这是有意义的,因为snowflake将\N放在双引号中,因此psql副本保留了它。如果编辑t\u 0\u 0.csv并删除\N周围的双引号:

,\N

然后再次运行psql copy,然后\N将正确转换为null

似乎没有一种方法可以从snowflake生成csv文件,该文件支持空字符串和null,可以在加载到postgres时保留。我搞乱了snowflake将空的\u字段\u配置为\u null和null\u,如果在snowflake的文档中它甚至提到了这个问题:

When unloading empty string data from tables, choose one of the following options:

Preferred: Enclose strings in quotes by setting the FIELD_OPTIONALLY_ENCLOSED_BY option, to distinguish empty strings from NULLs in output CSV files.
它确实“区分”了它们,但不是以psqlcopy可以使用的方式,而无需事先使用sed操作文件


有人知道如何生成雪花csv,以psql copy可以复制的方式保留空字符串和NULL吗?

您是否尝试过在文件格式中使用NULL\u IF选项,以下文件格式将卸载带有空字符串的雪花NULL数据

CREATE OR REPLACE FILE FORMAT UPDATED_FORMAT_NAME
TYPE = 'CSV'
COMPRESSION = 'NONE'
FIELD_DELIMITER =','
NULL_IF=()

太棒了。所以空值用no值表示,这是psqlcopy的输入csv文件_格式解释空值的默认值。非常好。谢谢。
When unloading empty string data from tables, choose one of the following options:

Preferred: Enclose strings in quotes by setting the FIELD_OPTIONALLY_ENCLOSED_BY option, to distinguish empty strings from NULLs in output CSV files.
CREATE OR REPLACE FILE FORMAT UPDATED_FORMAT_NAME
TYPE = 'CSV'
COMPRESSION = 'NONE'
FIELD_DELIMITER =','
NULL_IF=()