我的Snowflake数据库中名为ROW_DATA的表中存储了一些JSON,如下所示:

{"Test Column 1": "abc", "Test Column 2": "def", "Test Column 3": "ghi"}

我正在try 使用Snowflake内置的JSON数据解析(描述为here)来查询JSON,并将一个参数设置为如下所示的JSON属性名称:

SELECT ROW_DATA::myParameter::string FROM TableName

其中:myParameter是我在C#代码中使用Snowflake Connector绑定到的参数.不幸的是,这一直导致错误:

不支持的数据类型‘MYPARAMETER’

我还try 对参数使用问号注释:

SELECT ROW_DATA:(?)::string FROM TableName

在本例中,出现了一个不同的错误,即"意外字符)和?",这让我相信它没有正确地解析它.

我使用的C#Sharp代码是:

string columnSql = "SELECT ROW_DATA::myParameter::string FROM TableName";

DbCommand colValCommand = conn.CreateCommand();
colValCommand.CommandText = columnSql;

DbParameter myParameter = colValCommand.CreateParameter();
nameParam.DbType = DbType.String;
nameParam.Value = "Test Column 1";
nameParam.ParameterName = "myParameter";
colValCommand.Parameters.Add(myParameter);

using (DbDataReader reader = await colValCommand.ExecuteReaderAsync())  //Error here
{
   ...
}

Snowflake和/或.NET连接器是否支持使用此用例的参数?

推荐答案

为了实现字段名GET的参数化,应使用以下函数:

从数组或对象(或包含数组或对象的变量)中提取一个值.

SELECT GET(ROW_DATA, ?)::STRING 
FROM TableName

Json相关问答推荐

在Jenkins中使用ReadJSON读取json子元素

Allof Indide的JSON模式之一

从Postgres表中的JSON中提取值

在深度嵌套数组中使用布尔属性的jq-select

如何使用 jq 将字符串数组转换为对象?

使用 TypeScript 接口时如何修复未定义错误?

小写嵌套特定键的震动转换

try 使用 JQ 转换 JSON 中过于复杂的对象数组

如何从字符串中创建一个逗号分隔的列表,由 API 中的 JSON 对象内的编号空格分隔?

如果值不存在,则将值插入 JSON 数组

ORA-01422: 精确提取返回的行数超过了与 json 对象组合的请求数

下一个 Js 部署在 getStaticPath 函数上失败:在 JSON.parse 的位置 0 的 JSON 中出现意外的令牌 < 但在本地运行

如何使用 jq 返回此 JSON 文件的文本字段?

如何使用 Newtonsoft.Json 反序列化 JSON 数组

没有很多类的 GSON 解析

在 Apache Spark 中读取多行 JSON

如何将 LinkedHashMap 转换为自定义 java 对象?

如何通过 NSJSONSerialization 在 JSON 中包含空值?

如何从 JSON 响应中提取单个值?

Javascript对象和JSON对象有什么区别