我正在使用一个过程将行插入到表中。我想返回插入的行数,但我不知道如何从过程内部打开变量替换。我尝试了以下所有方法,但它们都返回错误:
snowflake.execute({sqlText: '!set variable_substitution=True'});
snowflake.execute({sqlText: 'set variable_substitution=True'});
snowflake.execute({sqlText: '-o variable_substitution=True'});如何打开此选项才能运行"select &__rowcount;“并恢复计数?
下面是测试过程的代码,如果有帮助的话:
CREATE OR REPLACE PROCEDURE TEST_OF_GETTING_COUNTS()
RETURNS VARCHAR
LANGUAGE javascript
CALLED ON NULL INPUT
AS
$$
// Turn on variable substitution
snowflake.execute(
{sqlText: '!set variable_substitution=True'}
);
// Prepare SQL to identify tables to be updated
snowflake.execute({sqlText: 'SELECT 1'});
// Now get the count of rows selected
var getCount = snowflake.createStatement({sqlText: "SELECT &__ROWCOUNT;"});
var rowCountResultSet = getCount.execute();
while (rowCount.next()) {
rowCount= rowCountResultSet.getColumnValue(1);
}
// Turn off variable substitution
snowflake.execute({sqlText: '!set variable_substitution=False'});
return rowCount;
$$;
CALL TEST_OF_GETTING_COUNTS();发布于 2021-05-08 06:56:43
NickW在上面的评论中给了我一个链接,指向snowflake文档中的一个页面,该页面列出了snowflake、Statement、ResultSet和SfDate对象可用的所有JavaScript方法。它提供了我需要的东西: getRowCount()方法。
https://stackoverflow.com/questions/67424235
复制相似问题