我正在使用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驱动程序查询参数的方法吗?
答案 0 :(得分:1)
INSERT INTO TABLE
是Impala特定的语法。要使用Impala ODBC对参数执行INSERT,需要使用SQL语法INSERT INTO <table name> ...
您可以尝试以下语法并查看它是否有帮助?
INSERT INTO test VALUES(?, ?)