如何检索通过 Snowflake javascript API 插入的行数?

Eri*_*met 3 snowflake-cloud-data-platform

如果我通过 javascript API 在 Snowflake 中运行 INSERT/SELECT,看起来无论插入了多少行,返回的 rowCount 都是 1...

myStatement = snowflake.createStatement( {sqlText: mySql} );
myStatement.execute();

rowCount = myStatement.getRowCount();
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法来检索插入的行数?难道我做错了什么?

谢谢

ore*_*bac 7

不,你没有做错什么。SELECT * .... Snowflake 中执行查询与执行语句之间存在差异UPDATE\DELETE\INSERT

在雪花中,如果您执行选择,并且知道返回的行数,那么您执行的是正确的:

myStatement = snowflake.createStatement( {sqlText: "SELECT * FROM TABLE1"} );
myStatement.execute();
rowCount = myStatement.getRowCount();
Run Code Online (Sandbox Code Playgroud)

当您执行“INSERT\UPDATE\DELETE”时,雪花仅返回一行,如 @greg-pavlik 的答案所示,该行具有已修改的行数。然而,还有一种更简单的方法。

myStatement = snowflake.createStatement( {sqlText: "INSERT ..."} );
myStatement.execute();
rowCount = myStatement.getNumRowsAffected();
Run Code Online (Sandbox Code Playgroud)