我正在尝试调用以下过程,但由于绑定变量而出现意外的“:”错误。 如果我使用简单的 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();
$$; ```
答案 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();
$$;