使用Impala ODBC驱动程序查询参数

本文关键字:查询 参数 驱动程序 ODBC Impala 使用 | 更新日期: 2023-09-27 18:25:37

我使用的是Cloudera提供的Impala ODBC驱动程序。我似乎无法正确使用查询参数。例如:

OdbcCommand command = DbConnection.CreateCommand();
command.CommandText = "INSERT INTO TABLE test VALUES(?, ?)";
command.Parameters.Add("key", OdbcType.VarChar).Value = "csharp";
command.Parameters.Add("val", OdbcType.VarChar).Value = "test";
command.ExecuteNonQuery();

引发以下异常。

{"ERROR[HY000][Cloudera][ImpalaODBC](110)执行Impala中的查询:[HY000]:AnalysisException:行中出现语法错误1:''n插入表格测试值(?,?)''n
^''已计数:意外字符''n预期:CASE、CAST、EXISTS,FALSE、IF、INTERVAL、NOT、NULL、TRUNCATE、TRUE、IDENTIFIER''n''n原因BY:异常:语法错误''n"}

哪个应该管理查询参数(以及用值替换?)、ODBC库还是驱动程序?它似乎是驱动程序,在这种情况下,它没有实现。。。很遗憾,因为我不能使用事先准备好的陈述。

有人知道用Impala ODBC驱动程序使用查询参数的方法吗?

使用Impala ODBC驱动程序查询参数

INSERT INTO TABLE是Impala特定的语法。要使用Impala ODBC对参数执行INSERT操作,您需要SQL 92语法INSERT INTO <table name> ...

你能试试下面的语法,看看它是否有用吗?

INSERT INTO test VALUES(?, ?)