我在Snowflake数据库中的一个名为ROW_DATA
的列中存储了一些JSON,如下所示:
{"Test Column 1": "abc", "Test Column 2": "def", "Test Column 3": "ghi"}
我尝试使用Snowflake内置的JSON数据解析(描述为here)查询JSON,并将参数设置为JSON属性名称,如下所示:
SELECT ROW_DATA::myParameter::string FROM TableName
其中:myParameter
是我在C#代码中使用Snowflake Connector绑定的参数。不幸的是,这导致了一个错误:
不支持的数据类型“MYPARAMETER”
我还尝试对参数使用问号注解:
SELECT ROW_DATA:(?)::string FROM TableName
在这种情况下,会出现一个不同的错误,说“unexpected character)and?“,让我相信它没有正确地解析它。
我使用的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 Connector是否支持为此用例使用参数?
1条答案
按热度按时间ars1skjm1#
为了参数化字段名称GET函数应使用:
从一个ARRAY或一个OBJECT(或一个包含ARRAY或OBJECT的VARIANT)中提取一个值。