You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake中执行JS/JSON函数报语法错误,该如何排查解决?

Snowflake自定义函数报错及脚本类型解答

脚本类型判定

你提供的代码是JavaScript,不存在「JSON Script」这类可执行脚本的概念,JSON本身是轻量级数据交换格式,不支持编写函数逻辑。

报错原因

你遇到的SQL编译错误是因为Snowflake默认解析器优先识别SQL语法,你直接执行裸的JavaScript代码时,第一行开头的function关键字不符合SQL语法规范,因此触发了「意外的'function'关键字」的报错。
Snowflake中运行JavaScript逻辑必须包裹在SQL的自定义函数、存储过程的声明结构中,不能直接单独执行JS代码。

正确创建该UDF的参考示例

CREATE OR REPLACE FUNCTION rsToJSON(query OBJECT)
RETURNS ARRAY
LANGUAGE JAVASCRIPT
AS
$$
function rsToJSON(query) {
var i;
var row = {};
var table = [];
while (query.resultSet.next()) {
    for(col = 1; col <= query.statement.getColumnCount(); col++) {
        row[query.statement.getColumnName(col)] = query.resultSet.getColumnValue(col);
    }
    table.push(row);
}
return table;
}
$$;

如果你是要在Snowflake存储过程中使用这段逻辑,同样需要把JS代码放在存储过程的AS $$ ... $$包裹块中即可。

内容的提问来源于stack exchange,提问作者user1810575

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 16:42:02