100132(P0000):JavaScript执行错误:未捕获引用错误:
我正在练习存储过程的try-and-catch用例,因为没有定义错误num。但是低于完全错误100132(P0000):JavaScript执行错误:未捕获引用错误:,javascript,snowflake-cloud-data-platform,Javascript,Snowflake Cloud Data Platform,我正在练习存储过程的try-and-catch用例,因为没有定义错误num。但是低于完全错误 100132 (P0000): JavaScript execution error: Uncaught ReferenceError: num is not defined in SP at ' var sql_comm = "insert into test_sp (col) values(" + num + ")";' position 57 斯塔克斯特拉斯: 警司热线:2 下面是我的代码
100132 (P0000): JavaScript execution error: Uncaught ReferenceError: num is not defined in SP at ' var sql_comm = "insert into test_sp (col) values(" + num + ")";' position 57
斯塔克斯特拉斯:
警司热线:2
下面是我的代码
create or replace TABLE TEST_SP (
COL NUMBER(38,0)
);
create or replace procedure sp ( num float )
returns float
language javascript
strict
execute as owner
as
$$
var sql_comm = "insert into test_sp values(" + num + ")";
try {
snowflake.execute(
{sqlText:sql_comm}
);
return "succeeded"
}
catch (err){
return "failed" + err ;
}
$$
;
call sp(2::float);
存储过程中的参数
NUM
必须全部大写。您返回的是float
,但返回的字符串/文本
在这之后是固定的,因此在我的示例中,我更改为返回文本
,但我怀疑这只是您测试的一个功能
create or replace procedure sp ( num float )
returns text
language javascript
strict
execute as owner
as
$$
var sql_comm = "insert into test_sp values(" + NUM + ")";
try {
snowflake.execute(
{sqlText:sql_comm}
);
return "succeeded"
}
catch (err){
return "failed" + err ;
}
$$
;
作品:
调用sp(2::float)
给予:
SP
succeeded
并检查:
select * from test_sp;
给出:
COL
2
2
2
存储过程中的所有参数都应该是大写的,将参数更改为大写将解决此问题