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

标签 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) Error while executing a query in Impala: [HY000] : AnalysisException: Syntax error in line 1:\nINSERT INTO TABLE test VALUES(?, ?)\n
^\nEncountered: Unexpected character\nExpected: CASE, CAST, EXISTS, FALSE, IF, INTERVAL, NOT, NULL, TRUNCATE, TRUE, IDENTIFIER\n\nCAUSED BY: Exception: Syntax error\n"}

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

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

最佳答案

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

你能试试下面的语法,看看是否有帮助吗?

INSERT INTO test VALUES(?, ?)

关于c# - 使用 Impala ODBC 驱动程序查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34093083/

相关文章:

sql - 函数参数列表错误 : '=' not recognized. 无法解析查询文本

sql - 选择配置单元中的下一个非空字段

python - impala shell,带大写字母的 shell 命令

hadoop - 用于在给定分隔符后提取文本的 impala 字符串函数

c# - c# 应用程序的所有字符仅在一台计算机中显示为方 block 字符

c# - 对通用对象使用 typeof C#

azure - Azure 应用服务下的 ODBC 或 OleDB 数据库驱动程序

php - PDO 返回错误 "could not find driver",具有已知的工作 DSN

c# - 获取图像方向并根据方向旋转

c# - 我有一个循环,它用值初始化一个对象列表,但是一旦它退出循环,对象就会变得相同