雪花 DDL 不允许将数据加载到表中

时间:2021-04-24 11:16:28

标签: snowflake-cloud-data-platform snowflake-schema

无法将数据插入具有特定数据类型的雪花表

这可能是一个非常愚蠢的问题,但我刚开始尝试 Snowflake 并坚持第一步。 我需要从 DETAILS 列中查找 XML 元素

select testId from app_event  table ;

这就是我尝试在雪花中创建表格的方式

create or replace table app_event (
  ID varchar(36)  not null primary key, 
  VERSION number, 
  ACT_TYPE varchar(255),
  EVE_TYPE varchar(255),
  CLI_ID varchar(36),
  DETAILS variant,
  OBJ_TYPE varchar(255),
  DATE_TIME timestamp,
  AAPP_EVENT_TO_UTC_DT timestamp,
  GRO_ID varchar(36),
  OBJECT_NAME varchar(255),
  OBJ_ID varchar(255),
  USER_NAME varchar(255),
  USER_ID varchar(255),
  EVENT_ID varchar(255),
  FINDINGS varchar(255),
  SUMMARY variant
);

这是我的样本数据

ID  VERSION ACT_TYPE    EVE_TYPE    CLI_ID  DETAILS OBJ_TYPE    DATE_TIME   AAPP_EVENT_TO_UTC_DT    GRO_ID  OBJECT_NAME OBJ_ID  USER_NAME   USER_ID EVENT_ID    FINDINGS    SUMMARY

003cce70-ffff-43bc-8905-5e1d64475aa1    0   SCREENED_CASE   WORLDCHECK  0   <?xml version="1.0" encoding="UTF-8" standalone="yes"?><testPayload><testId>565656-21cf-4c7e-8071-574a1ef78981</testId><testCode>COMPLETED</testCode><testState>TEST</testState><testResults>1</testResults><testRequiredResults>0</testRequiredResults><testExcludedResults>0</testExcludedResults><testAutoResolvedResults>1</testAutoResolvedResults><testproviderTypes>WATCHLIST</testproviderTypes></testPayload>  CASE    9/16/2020 9:45  9/16/2020 9:45  erutrt7-d726-4672-8599-83d21927bec5 0   5786765dfgdfgdfg    System User USER_SYSTEM 0   0   <?xml version="1.0" encoding="UTF-8" standalone="yes"?><testCaseEventSummary><testTypes>WATCHLIST</testTypes><testResults>1</testResults></testCaseEventSummary>

我要使用上面的 DDL 创建表,但是当我插入它时会引发错误 但是当我将所有数据类型声明为 varchar 时,我可以将行插入到该表中

你能建议我缺少什么吗。

这就是我尝试将数据加载到表中的方式

COPY INTO demo_db.public.app_event
FROM @my_s3_stage/
FILES = ('Event_data.csv')
file_format=(type='CSV');

1 个答案:

答案 0 :(得分:0)

<块引用>

我要使用上面的 DDL 创建表但是当我插入它时会抛出错误但是当我将所有数据类型声明为 varchar 我能够将行插入到这个表中

这种错误信息表明存在失败的隐式转换。

很可能对于列 AAPP_EVENT_TO_UTC_DT timestamp 的值 9/16/2020 9:45 未被识别。

用于提供日期/时间戳:可以使用 '2020-09-16 09:45:00'::timestamp 或提供特定格式的 TRY_TO_TIMESTAMP(string_expr, format) 函数。