为了账号安全,请及时绑定邮箱和手机立即绑定

在 Snowflake 存储过程中,有没有办法检查结果集中有多少列?

在 Snowflake 存储过程中,有没有办法检查结果集中有多少列?

吃鸡游戏 2023-07-29 15:14:04
我正在 Snowflake 中使用存储过程。我想知道如何在运行 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 中检查结果集的一行中有多少列(或检查结果集是否有任何列)而不引发错误?
查看完整描述

1 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞


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();


查看完整回答
反对 回复 2023-07-29
  • 1 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信