我使用的是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
^\nenccountered:意外字符\n预期:case,cast,exists,false,if,interval,not,null,truncate,true,identifier\n\n使用者:exception:语法错误\n“}
哪些应该管理查询参数(和替换?按值),odbc库还是驱动程序?它似乎是驱动程序,在这种情况下,它没有实现。。。很遗憾,我不能用事先准备好的陈述。
有人知道在impala odbc驱动程序中使用查询参数的方法吗?
1条答案
按热度按时间w46czmvw1#
INSERT INTO TABLE
是 Impala 特有的语法。要使用impala odbc对参数执行insert,需要使用sql 92语法INSERT INTO <table name> ...
你能试试下面的语法,看看是否有用吗?INSERT INTO test VALUES(?, ?)