Snowflake cloud data platform 雪花存储过程中的最大JavaScript字符串大小
Snowflake文档说VARCHAR列被限制为16 MB未压缩 Snowflake文档说明VARCHAR数据会自动转换为JavaScript字符串数据类型。Snowflake cloud data platform 雪花存储过程中的最大JavaScript字符串大小,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,Snowflake文档说VARCHAR列被限制为16 MB未压缩 Snowflake文档说明VARCHAR数据会自动转换为JavaScript字符串数据类型。 问题: 如果我调用Snowflake过程(或JavaScript UDF)并从表中传入VARCHAR数据,Snowflake过程中是否有大小限制,或者它将处理16MB字符串变量?JavaScript将处理高达16MB的数据: CREATE OR REPLACE FUNCTION MaxParam("STRING" VARCHAR) R
问题:
如果我调用Snowflake过程(或JavaScript UDF)并从表中传入VARCHAR数据,Snowflake过程中是否有大小限制,或者它将处理16MB字符串变量?JavaScript将处理高达16MB的数据:
CREATE OR REPLACE FUNCTION MaxParam("STRING" VARCHAR)
RETURNS STRING LANGUAGE JAVASCRIPT STRICT IMMUTABLE AS
'return STRING;';
CREATE TABLE T AS SELECT LPAD('111', 16777216, '0') STR;
SELECT MaxParam(STR) FROM T;
=> 0000000000000000000000000000000000000...
SELECT MaxParam(LPAD('111', 16777217, '0'));
=> String '(padded string)' is too long and would be truncated
(Error message is from LPAD, not JS)
谢谢你,汉斯!如果我像你一样了解JavaScript,我可以自己回答,但这将有利于其他人参考。感谢您的map函数处理显示为未定义的空参数!事实上,我认为这和雪花中16MB的SQL VARCHAR数据类型限制有关,而和JavaScript无关。未经测试,我确信JavaScript可以在过程/函数中处理大于16MB的文本。也许你找到了我的一些旧东西?我永远无法理解为什么在存储过程API中SQL NULL必须映射到未定义而不是NULL。
CREATE OR REPLACE FUNCTION MaxParam("STRING" VARCHAR)
RETURNS STRING LANGUAGE JAVASCRIPT STRICT IMMUTABLE AS
'return STRING;';
CREATE TABLE T AS SELECT LPAD('111', 16777216, '0') STR;
SELECT MaxParam(STR) FROM T;
=> 0000000000000000000000000000000000000...
SELECT MaxParam(LPAD('111', 16777217, '0'));
=> String '(padded string)' is too long and would be truncated
(Error message is from LPAD, not JS)