Javascript Snowflake无法将对象绑定到查询中以将其插入变量列,即使使用JSON.parse也是如此
此存储过程将获取一个对象并将其插入表的变量列中:Javascript Snowflake无法将对象绑定到查询中以将其插入变量列,即使使用JSON.parse也是如此,javascript,sql,object,stored-procedures,snowflake-cloud-data-platform,Javascript,Sql,Object,Stored Procedures,Snowflake Cloud Data Platform,此存储过程将获取一个对象并将其插入表的变量列中: try { var table_query = "CREATE OR REPLACE TEMPORARY TABLE FIELD_NAME_TABLE (field_variant VARIANT)"; var table_query_stmt_result = snowflake.createStatement({sqlText: table_query}).execute(); var insert_query
try {
var table_query = "CREATE OR REPLACE TEMPORARY TABLE FIELD_NAME_TABLE (field_variant VARIANT)";
var table_query_stmt_result = snowflake.createStatement({sqlText: table_query}).execute();
var insert_query = "INSERT INTO FIELD_NAME_TABLE SELECT ?";
var insert_stmt = snowflake.createStatement({sqlText: insert_query, binds: [(TABLE_COL_AND_FIELDS)]});
var result = insert_stmt.execute();
result.next();
return result;
return result['number of rows inserted'];
}
catch(err) {
return err.message;
}
表列和字段是具有以下结构的对象:
{
"field1": "val1",
"field2": "val2"
}
运行脚本时,我遇到以下错误:
"Invalid binds argument[object Object]. Error: Unsupported type for binding argument 2undefined"
我添加了JSON.parse(TABLE\u COL\u和\u字段)
,得到了以下错误:
“JSON中位置1处的意外标记o”
我试过:
(表列和字段)。toString()
我有一个错误:
"SQL compilation error:\nExpression type does not match column data type, expecting VARIANT but got VARCHAR(15) for column FIELD_VARIANT"
FIELD\u VARIANT
是临时表中类型为VARIANT
的列。我通过在查询文本中添加parse\u json()
和binds
部分中的json.stringify()
找到了解决方案。脚本如下:
try {
var table_query = "CREATE OR REPLACE TEMPORARY TABLE FIELD_NAME_TABLE (field_variant VARIANT)";
var table_query_stmt_result = snowflake.createStatement({sqlText: table_query}).execute();
var insert_query = "INSERT INTO FIELD_NAME_TABLE SELECT parse_json(?)";
var insert_stmt = snowflake.createStatement({sqlText: insert_query, binds: [JSON.stringify(TABLE_COL_AND_FIELDS)]});
var result = insert_stmt.execute();
result.next();
return result;
return result['number of rows inserted'];
}
catch(err) {
return err.message;
}