You need to enable JavaScript to run this app. Snowflake存储过程执行报Uncaught ReferenceError错误如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake存储过程执行报Uncaught ReferenceError错误如何解决?

报错原因
  • Snowflake JavaScript存储过程有强制规则:所有从SQL层传入的存储过程输入参数,在JavaScript代码块的上下文中会被自动转换为全大写的变量名。你在JS代码里调用的是小写的float_param1,和实际存在的全大写变量名不匹配,因此抛出未定义的引用错误。
修复方案

直接将JS代码中引用的参数名改为全大写的FLOAT_PARAM1即可,也可以同时优化SQL写法改用绑定变量避免注入风险,修复后的完整代码如下:

create or replace table test1(num_col1 number);

create or replace procedure rt(float_param1 float )
returns string 
language javascript 
as
$$
-- 方案1:直接用全大写参数名拼接(和你原有写法兼容)
var sql_command = "insert into test1 (num_col1) values (" + FLOAT_PARAM1 + ")";

-- 更安全的方案2:使用绑定变量,避免SQL注入风险,推荐使用
-- var sql_command = "insert into test1 (num_col1) values (?)";
-- snowflake.execute({sqltext: sql_command, binds: [FLOAT_PARAM1]});

snowflake.execute(
    {sqltext:sql_command}
    );
return 'success.';
$$ 
;
call rt(12.23::float);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 18:06:03