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

时间:2015-12-04 16:35:52

标签: c# odbc impala

我正在使用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:\ nINSERT INTO TABLE测试值(?,?)\ n
  ^ \ nEncountered:意外的字符\ n预计:CASE,CAST,EXISTS,   FALSE,IF,INTERVAL,NOT,NULL,TRUNCATE,TRUE,IDENTIFIER \ n \ nCAUSED   BY:异常:语法错误\ n"}

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

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

1 个答案:

答案 0 :(得分:1)

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

您可以尝试以下语法并查看它是否有帮助?

INSERT INTO test VALUES(?, ?)