雪花 - 在调用语句 w 中将动态值传递给存储过程

时间:2021-03-19 12:14:23

标签: snowflake-cloud-data-platform

var P_ENV = 'int' var p_sqlText: CALL LS_**${P_ENV}**.HIID_SECURED.sp_getStatCertSaltValue(:1,:2); var stmt = snowflake.createStatement({sqlText:p_sqlText,binds: [P_ENV,P_STARTCERTID] });

    var rs = stmt.execute();
    rs.next();
    var p_saltvalue= rs.getColumnValue(1);

无法在存储过程中执行这些行 - 在存储过程中调用存储过程 - 请思考

1 个答案:

答案 0 :(得分:1)

你能分享一下你得到的错误信息吗?

当我尝试对其进行测试时,我能够调用该过程:

create or replace procedure int_sp_getStatCertSaltValue( v1 varchar, v2 varchar)
returns object
language javascript
as
$$
  return { "v1": V1, "v2": V2 };
$$;

create or replace procedure spinsp()
returns object
language javascript
as
$$
 var P_ENV = 'int';
 var P_STARTCERTID = 1
 var p_sqlText = `CALL ${P_ENV}_sp_getStatCertSaltValue(:1,:2)`; 
 var stmt = snowflake.createStatement({sqlText:p_sqlText,binds: [P_ENV,P_STARTCERTID] });
 var res = stmt.execute();
 res.next();
 return res.getColumnValue(1);
$$
;

call spinsp();


+----------------------------+
|           SPINSP           |
+----------------------------+
| { "v1": "int", "v2": "1" } |
+----------------------------+