我有一个JavaScript过程,从表中获取行。脚本如下所示:
var sql = "SELECT * FROM my_table WHERE id<1000";
var stmt = snowflake.createSnowflake({sqlText: sql});
var rs = stmt.execute();
rs.next();
我需要将rs
复制到另一个表中,但我不能这样做,因为当我返回rs
时,我只能看到一条记录。
我是否可以将获取的数据循环到insert中,如:
while(rs.next()) {
// insert into ...
}
回答你关于循环的问题:根据文档,ResultSet类似于SQL游标,即您可以在ResultSet中一次看到一行。通常,在检索ResultSet之后,使用next()遍历它。
您可以在这里找到一个使用next()并检索结果值的示例:https://docs.snowflake.com/en/sql-reference/stored-procedures-api.html
关于你的总体任务,你提到你"需要把这些数据复制到另一个表格中"。可能使用INSERT INTO myTable SELECT * FROM sourceTable
是解决你的问题,而不必循环结果集。文档:https://docs.snowflake.com/en/sql-reference/sql/insert.html