【问题标题】:Snowflake stored procedure, check if a resultset is empty without throwing an error雪花存储过程,检查结果集是否为空而不抛出错误
【发布时间】:2020-11-11 02:39:23
【问题描述】:

与我打开的另一个雪花问题有点相关 In a Snowflake stored procedures, is there a way to check how many columns are in a resultSet?

有没有办法检查结果集是否为空?例如

var query = `SELECT * FROM somewhere`
var stmt = snowflake.createStatement({sqlText: query});
var result = stmt.execute();
result.next()
var colCount = stmt.getColumnCount();

如果结果集中没有返回数据则出错。它说

Failed Code 100183 State P0000 Message ResultSet is empty or not prepared, call next() first

我试着翻转它只是为了看看会发生什么。

var query = `SELECT * FROM somewhere`
var stmt = snowflake.createStatement({sqlText: query});
var result = stmt.execute(); 
var colCount = stmt.getColumnCount();
result.next();

看起来var colCount = stmt.getColumnCount();result.next(); 这两条线无论顺序如何都会抛出相同的错误。我怀疑错误是因为结果集为空。如果我的怀疑是正确的,那么我需要另一种方法来检查。在引发此错误之前,是否有一种安全的方法来检查结果中是否有任何数据?

【问题讨论】:

    标签: javascript stored-procedures snowflake-cloud-data-platform


    【解决方案1】:

    您可以通过这种方式获取结果集的计数:

    statement.getRowCount();

    在您的代码中,您可以这样做:

    var query = `SELECT * FROM somewhere`
    var stmt = snowflake.createStatement({sqlText: query});
    var result = stmt.execute();
    if (stmt.getRowCount() > 0) {
        result.next()
        var colCount = stmt.getColumnCount();
    } else {
        // Do something here if no rows in the resultset.
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-22
      • 2022-08-19
      • 1970-01-01
      • 1970-01-01
      • 2013-08-31
      • 2019-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多