微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

雪花 VARCHAR 到 VARIANT 插入“\”字符

如何解决雪花 VARCHAR 到 VARIANT 插入“\”字符

我在 varchar 列中有一些原始数据,但是当我在其上运行 to_variant() 函数时,数据发生了巨大变化。例如。

这个json数据存放在varchar中

{
  "event_detail": {
    "event_name": "quote_created","id": "679cc110-1c06-4f7d-aeed-1f637c0eff2d","source": "Quote service","timestamp": {
      "nanos": 730693300,"seconds": 1603366821
    }
  }

变成这样

"{
   \"event_detail\": {
     \"event_name\": \"quote_created\",\"id\": \"679cc110-1c06-4f7d-aeed-1f637c0eff2d\",\"source\": \"Quote service\",\"timestamp\": {
       \"nanos\": 730693300,\"seconds\": 1603366821
    }
  }"

有人见过这个吗?它使解析变体变得极其困难?我之前也看到过第一个 json 负载在变体数据类型中没有“\”字符。

解决方法

据我所知,这是预期的行为。您可以使用 parse_json 函数,而不是使用 to_variant 函数将 varchar 转换为变体。在这种情况下,很容易解析:

select parse_json('{  "event_detail": {
    "event_name": "quote_created","id": "679cc110-1c06-4f7d-aeed-1f637c0eff2d","source": "Quote service","timestamp": {
      "nanos": 730693300,"seconds": 1603366821 }}}'):event_detail.event_name::String;

这将返回:quote_created

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。