I am writing the procedure as below. Passing the values as Array and binding it while running the sql .
While calling the procedure (call procedure proc_test1(array_construct('a','b'))) getting unsupported data type binding error.
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;
}
$$