在 Snowflake 存储过程中,有没有办法检查结果集中有多少列?
In a Snowflake stored procedures, is there a way to check how many columns are in a resultSet?
我正在使用 Snowflake 中的存储过程。我想知道如何在 运行ning getColumnValue() 之前安全地检查结果集中是否有列,如果我尝试在不存在的列上调用它会出错。如果我运行这个
var query = `SELECT * FROM somewhere`
var result = snowflake.execute({sqlText: query});
var count = result.getColumnCount();
我收到一条错误消息,指出 getColumnCount 不是一个函数。如果我运行
var query = `SELECT * FROM somewhere`
var result = snowflake.execute({sqlText: query});
result.next();
var count = result.getColumnCount();
我得到同样的错误。
编辑:我采纳了一些建议并尝试了
var query = `SELECT * FROM somewhere`
var stmt = snowflake.createStatement({sqlText: query});
var result = stmt.execute();
var colCount = stmt.getColumnCount();
但我有时会收到一条错误消息 ResultSet is empty or not prepared, call next() first
所以我尝试了
var query = `SELECT * FROM somewhere`
var stmt = snowflake.createStatement({sqlText: query});
var result = stmt.execute();
result.next()
var colCount = stmt.getColumnCount();
但我得到了同样的错误。我假设在那些情况下 ResultSet 可能是空的,但我认为 colCount == 0.
因此,要么是开发人员没有实现提前完成此操作的方法,要么没有记录,或者我遗漏了一些东西(最有可能)。
有谁知道在 Snowflake 中检查结果集的一行中有多少列(或检查结果集是否有任何列)而不会引发错误的方法?
getColumnCount()
是 Statement 的方法,不是 ResultSet 的方法。
而不是:
var query = `SELECT * FROM somewhere`
var result = snowflake.execute({sqlText: query});
var count = result.getColumnCount();
做:
var query = `SELECT * FROM somewhere`
var stmt = snowflake.createStatement({sqlText: query});
var result = stmt.execute();
var col_count = stmt.getColumnCount();
我正在使用 Snowflake 中的存储过程。我想知道如何在 运行ning getColumnValue() 之前安全地检查结果集中是否有列,如果我尝试在不存在的列上调用它会出错。如果我运行这个
var query = `SELECT * FROM somewhere`
var result = snowflake.execute({sqlText: query});
var count = result.getColumnCount();
我收到一条错误消息,指出 getColumnCount 不是一个函数。如果我运行
var query = `SELECT * FROM somewhere`
var result = snowflake.execute({sqlText: query});
result.next();
var count = result.getColumnCount();
我得到同样的错误。
编辑:我采纳了一些建议并尝试了
var query = `SELECT * FROM somewhere`
var stmt = snowflake.createStatement({sqlText: query});
var result = stmt.execute();
var colCount = stmt.getColumnCount();
但我有时会收到一条错误消息 ResultSet is empty or not prepared, call next() first
所以我尝试了
var query = `SELECT * FROM somewhere`
var stmt = snowflake.createStatement({sqlText: query});
var result = stmt.execute();
result.next()
var colCount = stmt.getColumnCount();
但我得到了同样的错误。我假设在那些情况下 ResultSet 可能是空的,但我认为 colCount == 0.
因此,要么是开发人员没有实现提前完成此操作的方法,要么没有记录,或者我遗漏了一些东西(最有可能)。
有谁知道在 Snowflake 中检查结果集的一行中有多少列(或检查结果集是否有任何列)而不会引发错误的方法?
getColumnCount()
是 Statement 的方法,不是 ResultSet 的方法。
而不是:
var query = `SELECT * FROM somewhere`
var result = snowflake.execute({sqlText: query});
var count = result.getColumnCount();
做:
var query = `SELECT * FROM somewhere`
var stmt = snowflake.createStatement({sqlText: query});
var result = stmt.execute();
var col_count = stmt.getColumnCount();