COPY INTO Snowflake Table 并将额外列作为定义值

COPY INTO Snowflake Table with Extra Columns as a defined value

我有一个 table 在 Snowflake 中定义为:

table1

COL1 VARCHAR(16777216)
COL2 VARCHAR(16777216)
tablename VARCHAR(16777216)

和如下所示的 csv 文件(只有 2 列):

table1.csv

COL1
COL2

我想将所有列从“table1.csv”复制到“table1”雪花 table,因此 COL1 和 COL2 的数据将从 csv 复制到雪花 table 和“tablename”列应为“table1”(文件名)

我复制到命令中是这样的:

  copy into table1
  from @snowflake_stage
  file_format = (type = 'CSV' skip_header = 1 FIELD_OPTIONALLY_ENCLOSED_BY = '"' 
  validate_utf8 = FALSE error_on_column_count_mismatch=false)
  on_error = CONTINUE;

COL1 和 Col2 的数据已从 csv 成功加载到雪花 table,但 tablename 列为 NULL。我希望 tablename 列的所有行都具有值“table1”。

Snowflake 自动为文件生成元数据列。 您可以使用 METADATA$FILENAME.

它将包含完整路径,您可以存储完整路径或使用 SUBSTRING 命令获取没有路径或扩展名的文件名