CQL:.InvalidQueryException:绑定变量的数量无效

时间:2017-04-07 20:25:51

标签: cassandra apache-camel

我正在尝试从camel-context查询Cassandra Db。以下是路线:

from __future__ import print_function

f = lambda x: print(x) if x%2 == 0 else False

我面临以下例外:

  

com.datastax.driver.core.exceptions.InvalidQueryException:无效的绑定变量数量   com.datastax.driver.core.exceptions.InvalidQueryException.copy(InvalidQueryException.java

有人能让我知道Cassandra camel组件的确切语法吗?

2 个答案:

答案 0 :(得分:0)

<to uri="cql:0.0.0.0:9042/keyspace_name?cql=Select * from table_name where primary_key_column=?"/>

您可以根据您的设置替换IP和端口(但默认端口为9042)。您还可以根据数据结构设置keyspace_name,table_name和primary_key_column。

答案 1 :(得分:0)

今天,我为此受到了严重打击,正如Alexis所说,任何解决方法都将问题从“无效数量的绑定变量”更改为“ Prepared语句只有0个变量”。

我找到的解决方案是:

 .split(body()).streaming()
 .doTry()
 .setHeader("CamelCqlQuery", simple("${body}"))
 .setBody().simple("${null}")
 .toD("cql:"+cassandra_ips+"/"+cassandra_keyspace)

在我的情况下,我有一个拆分器,因为我正在运行批处理。我需要主体中的语句列表以对其进行迭代,所以我不能只是将其设置为空。