从雪花中卸载CSV,其中仅将非null用引号引起来

问题描述 投票:0回答:1

我正在尝试从Snowflake卸载CSV文件,在该文件中仅引用非空值并将其括在双引号中。

这是我的桌子

|BizName        |BizOwner      |
|----------+-------------------|
| "NiceOne" LLC | Robert       |
| GoodRX        |              |
| MaxLift       | Brian        |
| P,N and B     | Jane         |
+----------+--------------------

这是我想要的输出-

"""NiceOne"" LLC","Robert","GoodRX",,"Maxift","Brian","P,N and B","Jane"

这里是我尝试过的2种格式的示例

我尝试使用以下格式,将空值括在引号中

create or replace file format formatA
    COMPRESSION = GZIP
    RECORD_DELIMITER = ','
    SKIP_HEADER = 1
    FIELD_DELIMITER =  NONE
    FILE_EXTENSION = 'csv'
    ESCAPE =  NONE
    ESCAPE_UNENCLOSED_FIELD = NONE 
    FIELD_OPTIONALLY_ENCLOSED_BY = '"'
    NULL_IF = ( '','NULL' , 'null' , '""' )
    EMPTY_FIELD_AS_NULL = TRUE
    copy into @mytablestage from mytable FILE_FORMAT = ( FORMAT_NAME = 'formatA' ) ON_ERROR = CONTINUE

我尝试了以下格式,该格式不使用引号引起来

create or replace file format formatB
    COMPRESSION = GZIP
    RECORD_DELIMITER = ','
    SKIP_HEADER = 1
    FIELD_DELIMITER =  NONE
    FILE_EXTENSION = 'csv'
    ESCAPE =  NONE
    ESCAPE_UNENCLOSED_FIELD = NONE 
    NULL_IF = ( '','NULL' , 'null' , '""' )
    EMPTY_FIELD_AS_NULL = TRUE
copy into @mytablestage from mytable FILE_FORMAT = ( FORMAT_NAME = 'formatB' ) ON_ERROR = CONTINUE
sql export-to-csv ddl file-format snowflake
1个回答
0
投票

查看所需的输出,字段定界符和记录定界符不能相同,以区分行和字段。选择一个不同的记录定界符,然后使用NULL_IF =('','NULL','null','“”')的FIELD_OPTIONALLY_ENCLOSED_BY ='“'应该会为您提供所需的输出。

© www.soinside.com 2019 - 2024. All rights reserved.