雪花 - 使用绑定变量

时间:2021-05-19 09:47:23

标签: stored-procedures snowflake-cloud-data-platform bind-variables

我正在尝试调用以下过程,但由于绑定变量而出现意外的“:”错误。 如果我使用简单的 JS 连接,它就可以工作。但是请让我知道是否有其他使用绑定变量的替代方法。此外,查询绑定变量的所有部分都可以使用吗?

CREATE OR REPLACE PROCEDURE test_proc ()
RETURNS STRING
LANGUAGE JAVASCRIPT
AS
$$
var V_TEMP = '123'
var V_SQL = `CREATE TABLE TEST_TABLE:1  AS
SELECT  A.FIRST_NAME,
A.LAST_NAME
FROM    
MARKET A
WHERE  first_name>3000;`
var EXEC_V_SQL = snowflake.createStatement(
{
sqlText: V_SQL, binds: [ V_TEMP ]
}
)
var result1 = EXEC_V_SQL.execute();
$$; ```

1 个答案:

答案 0 :(得分:0)

问题是您在不使用 IDENTIFIER() 函数的情况下为对象名称使用了绑定变量。试试这样的:

CREATE OR REPLACE PROCEDURE test_proc ()
RETURNS STRING
LANGUAGE JAVASCRIPT
AS
$$
var V_TEMP = 'TEST_TABLE123'
var V_SQL = `CREATE TABLE IDENTIFIER(:1)  AS
SELECT  A.FIRST_NAME,
A.LAST_NAME
FROM    
MARKET A
WHERE  first_name>3000;`
var EXEC_V_SQL = snowflake.createStatement(
{
sqlText: V_SQL, binds: [ V_TEMP ]
}
)
var result1 = EXEC_V_SQL.execute();
$$;