Snowflake cloud data platform 大写SQL语句在雪花存储过程中不起作用

Snowflake cloud data platform 大写SQL语句在雪花存储过程中不起作用,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,在下面的示例中,一个存储过程正常工作,而一个存储过程不正常。这两个字母之间的唯一区别是SQL语句的大小写 创建表tmp 原始json变量 ; - 2019-01-01 = 1546347600000 - 2018-01-01 = 1514811600000 在tmp中插入选择parseujson“{timestamp:151481160000}”; 创建或替换过程工作\u一次性\u值varchar 返回varchar 语言javascript 像 $$ var stmtString=delete

在下面的示例中,一个存储过程正常工作,而一个存储过程不正常。这两个字母之间的唯一区别是SQL语句的大小写

创建表tmp 原始json变量 ; - 2019-01-01 = 1546347600000 - 2018-01-01 = 1514811600000 在tmp中插入选择parseujson“{timestamp:151481160000}”; 创建或替换过程工作\u一次性\u值varchar 返回varchar 语言javascript 像 $$ var stmtString=delete from tmp where to_timestapraw_json:timestamp::string我认为问题不在于SQL的大小写敏感性,甚至不在于它是一个存储过程。问题是JSON中的属性区分大小写。试试这个,告诉我这样对你是否更好

create or replace procedure fixed_one(TIME_VALUE varchar)
returns varchar
language javascript
as
$$
var stmtString = "DELETE FROM TMP WHERE TO_TIMESTAMP(RAW_JSON:timestamp::STRING) < TO_TIMESTAMP(:1);"
var stmt = snowflake.createStatement({sqlText: stmtString, binds: [TIME_VALUE]})
var rs = stmt.execute()
rs.next()
return rs.getColumnValue(1)
$$;

我认为问题不在于SQL的大小写敏感性,甚至不在于它是一个存储过程。问题是JSON中的属性区分大小写。试试这个,告诉我这样对你是否更好

create or replace procedure fixed_one(TIME_VALUE varchar)
returns varchar
language javascript
as
$$
var stmtString = "DELETE FROM TMP WHERE TO_TIMESTAMP(RAW_JSON:timestamp::STRING) < TO_TIMESTAMP(:1);"
var stmt = snowflake.createStatement({sqlText: stmtString, binds: [TIME_VALUE]})
var rs = stmt.execute()
rs.next()
return rs.getColumnValue(1)
$$;

在用JSON对象编写特别查询时,我经常被这个问题困扰,这是一个很好的发现。Mike,它很管用!谢谢请注意,最好在文档中添加这些信息。我和Simeon一定不是唯一面临这一问题的人。这里的文档中有一条关于这一点的注释:。我同意,或许应该多加注意。我认为雪花表和列不区分大小写,但数据是区分大小写的。查询变量数据时,这意味着属性也区分大小写。很高兴我能帮你解决这个问题!在用JSON对象编写特别查询时,我经常被这个问题困扰,这是一个很好的发现。Mike,它很管用!谢谢请注意,最好在文档中添加这些信息。我和Simeon一定不是唯一面临这一问题的人。这里的文档中有一条关于这一点的注释:。我同意,或许应该多加注意。我认为雪花表和列不区分大小写,但数据是区分大小写的。查询变量数据时,这意味着属性也区分大小写。很高兴我能帮你解决这个问题!