在雪花存储过程中,有没有办法检查结果集中有多少列? [英] In a Snowflake stored procedures, is there a way to check how many columns are in a resultSet?

查看:32
本文介绍了在雪花存储过程中,有没有办法检查结果集中有多少列?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 Snowflake 中的存储过程.我想知道如何在运行 getColumnValue() 之前安全地检查 resultSet 中是否有列,如果我尝试在不存在的列上调用它会出错.如果我运行这个

I am working with stored procedures in Snowflake. I want to know how to safely check that there are columns in a resultSet before running getColumnValue() which errors if I try to call it on a non-existent column. If I run this

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

我收到一条错误消息,指出 getColumnCount 不是函数.如果我跑

I get an error saying that getColumnCount is not a function. If I run

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

我遇到了同样的错误.

我接受了一些建议并尝试过

I took some advice and tried

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

但有时我会收到错误消息,说ResultSet 为空或未准备好,请先调用 next() 所以我尝试了

but I sometimes get an error saying ResultSet is empty or not prepared, call next() first so I tried

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

但我得到了同样的错误.我假设在这些情况下 ResultSet 可能是空的,但我原以为 colCount 会 == 0.

but I get the same error. I am assuming in those cases ResultSet might be empty but I would have thought colCount would == 0.

因此,要么开发人员没有实现提前获取此信息的方法,要么没有记录在案,要么我遗漏了一些东西(最有可能).

So either the developers haven't implemented a way to get this ahead of time or it isn't documented or I am missing something (the most likely).

有谁知道在 Snowflake 中检查结果集的一行中有多少列(或检查结果集是否有任何列)而不抛出错误的方法?

Does anyone know of a way to check how many columns are in a row of a result set (or check that a result set has any columns at all) in Snowflake without throwing an error?

推荐答案

getColumnCount() 是 Statement 的方法,而不是 ResultSet 的方法.

getColumnCount() is a method of a Statement, not of a 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();

这篇关于在雪花存储过程中,有没有办法检查结果集中有多少列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆