.NET 4.8通过ODBC连接Dremio执行参数化查询报错
.NET 4.8通过ODBC连接Dremio执行参数化查询时触发"Unsupported function"错误
错误详情
System.Data.Odbc.OdbcException HResult=0x80131937 Message=ERROR [HYC00] [Apache Arrow][Flight SQL] (100) Unsupported function. Source=Arrow Flight ODBC Driver StackTrace: at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode) at System.Data.Odbc.OdbcParameter.Bind(OdbcStatementHandle hstmt, OdbcCommand command, Int16 ordinal, CNativeBuffer parameterBuffer, Boolean allowReentrance) at System.Data.Odbc.OdbcParameterCollection.Bind(OdbcCommand command, CMDWrapper cmdWrapper, CNativeBuffer parameterBuffer) at System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader, Object[] methodArguments, SQL_API odbcApiMethod) at System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader) at System.Data.Odbc.OdbcCommand.ExecuteReader(CommandBehavior behavior)
触发场景
执行以下参数化查询时均触发上述错误:
- 使用
?占位符:
SELECT DISTINCT "R_NAME" FROM "REGION" WHERE ("REGION"."R_NAME" = ?)
- 使用
$1占位符:
SELECT DISTINCT "R_NAME" FROM "REGION" WHERE ("REGION"."R_NAME" = $1)
- 使用
@Parameter0占位符:
SELECT DISTINCT "R_NAME" FROM "REGION" WHERE ("REGION"."R_NAME" = @Parameter0)
正常执行的查询
ODBC连接已配置好对应Schema,以下非参数化查询可正常运行:
SELECT DISTINCT "R_NAME" FROM "REGION" WHERE ("REGION"."R_NAME" = '<REGION NAME>')
环境补充信息
- 本地通过Docker部署Dremio
- 底层数据源为Snowflake
- 参数化查询未到达Dremio(Dremio的Jobs标签页无相关任务记录)
求助需求
无法定位"Unsupported function"错误的原因,也不知道如何开启ODBC驱动的额外日志进行调试,恳请提供排查思路。
内容的提问来源于stack exchange,提问作者chrisb
相关产品推荐
相关产品推荐

