Estoy escribiendo el procedimiento de la siguiente manera. Pasar los valores como Array y vincularlos mientras se ejecuta el sql.
Al llamar al procedimiento (procedimiento de llamada proc_test1(array_construct('a','b'))) se obtiene un error de enlace de tipo de datos no compatible.
create or replace procedure proc_test1(PRAM Array) returns varchar not null language JavaScript as $$ var step0='select value from table(flatten(input =>parse_json(:1))'; var statement0=snowflake.createStatement( {sqlText: step0,binds: [PARAM]} ); var res1 = statement0.execute(); while (res1.next()) { var column_val1 = res1.getColumnValue(1); try { snowflake.execute( {sqlText: "begin transaction;"} ); var step1=`insert into table1(column1,column2) select column1,column2 from table2 where column3=:1;` var statement1=snowflake.createStatement( {sqlText: step1,binds: [column_val1]} ); statement1.execute(); result="Succeeded"; snowflake.execute( {sqlText: "commit;"} ); }catch (err) { snowflake.execute( {sqlText: "rollback;"} ); result = "Failed: Code: " + err.code + "\n State: " + err.state; result += "\n Message: " + err.message; result += "\nStack Trace:\n" + err.stackTraceTxt; } return result; } $$