首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >雪花'GET':(VARCHAR(16777216),VARCHAR(12))

雪花'GET':(VARCHAR(16777216),VARCHAR(12))
EN

Stack Overflow用户
提问于 2020-01-10 22:08:35
回答 2查看 12.3K关注 0票数 1

我已经将一个JSON文件加载到了雪花舞台上。

现在,我的目标是将文件的内容复制到关系表中。

表定义为有varchar列或布尔列。

代码语言:javascript
复制
{
  "requestRefid": "W2W8P",
  "requestid": "kki8786f1b-03eb",
  "requestTypes": [
    "Do not sell it"
  ],
  "subjectTypes": [
    "Current customer"
  ],
  "firstName": "Dan",
  "lastName": "Murrary",
  "email": "k99008a85ki@gmail.com",
  "phone": "410000869",
  "emailValidation": true,
  "phoneValidation": true,
  "message": "Confirm",
}

下面是我使用的复制语句:

代码语言:javascript
复制
copy into TEST."PUBLIC".REQUESTS(REQUESTREFID, REQUESTID, FIRSTNAME, LASTNAME, EMAIL, PHONE, EMAILVALIDATION, PHONEVALIDATION, IDVALIDATION, MESSAGE, CHANNEL)
   from (select $1:requestRefid, $1:requestid, $1:firstName, $1:lastName, $1:email, $1:phone, $1:emailValidation, $1:phoneValidation, $1:idValidation, $1:message, $1:channel
   from @sf_tut_stage/sample.json t);

下面是我得到的错误:

SQL错误1044:

SQL编译错误:位置18处的错误第2行

函数GET的无效参数类型:(VARCHAR(16777216),VARCHAR(12))

SQL编译错误:位置18处的错误第2行

函数GET的无效参数类型:(VARCHAR(16777216),VARCHAR(12))

SQL编译错误:位置18处的错误第2行

函数GET的无效参数类型:(VARCHAR(16777216),VARCHAR(12))

我能够在这个阶段使用以下查询查询JSON文件的内容:

代码语言:javascript
复制
select $1
   from @sf_tut_stage/sample.json;  

我做错了什么?

我还尝试在复制语句中添加以下内容:

代码语言:javascript
复制
file_format = (format_name = SF_TUT_CSV_FORMAT));

但没有运气。

编写此语句的正确方法是什么,这样它就可以将$1中的项加载到各个关系表列中。

EN

回答 2

Stack Overflow用户

发布于 2020-01-11 00:05:39

您的代码试图使用:语法从源代码中提取值,但它仍然只是一个varchar,它不允许这种语法。使用PARSE_JSON尝试这样做,这样SnowFlake就知道它是JSON,并且可以适当地应用这个语法。

代码语言:javascript
复制
copy into TEST."PUBLIC".REQUESTS(REQUESTREFID, REQUESTID, FIRSTNAME, LASTNAME, EMAIL, PHONE, EMAILVALIDATION, PHONEVALIDATION, IDVALIDATION, MESSAGE, CHANNEL)
from (
    select
        PARSE_JSON($1):requestRefid,
        PARSE_JSON($1):requestid,
        PARSE_JSON($1):firstName,
        PARSE_JSON($1):lastName,
        PARSE_JSON($1):email,
        PARSE_JSON($1):phone,
        PARSE_JSON($1):emailValidation,
        PARSE_JSON($1):phoneValidation,
        PARSE_JSON($1):idValidation,
        PARSE_JSON($1):message,
        PARSE_JSON($1):channel
    from @sf_tut_stage/sample.json t
 ); 
票数 3
EN

Stack Overflow用户

发布于 2020-01-11 00:02:37

下面是将JSON数据加载到Relational的方法。https://docs.snowflake.net/manuals/user-guide/script-data-load-transform-json.html

您需要使用parse_json()方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59689642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档