cassandra 在DevCenter中使用绑定变量,出现错误“绑定变量数量无效”

a2mppw5e  于 2022-11-05  发布在  Cassandra
关注(0)|答案(1)|浏览(136)

如何在select语句中使用绑定变量。
当我直接使用它时,它会检索如下的值。

select event_hour 
from stage_insight.insight_hourly_ts
where tag_id='UP247490.UPSYSCPWLV001A'
LIMIT 1;

如何动态地使用它?

select event_hour 
from stage_insight.insight_hourly_ts 
where tag_id = ? ;

对于第二个,显示了一个错误,比如,绑定变量的数量错误......我正在使用DataStax DevCenter。所以,这里我试图直接从CassandraDB中获取值。

ResponseError: Invalid amount of bind variables\n  
  at FrameReader.readError (D:\\EACApp\\eac-app-management\\node_modules\\cassandra-driver\\lib\\readers.js:326:15)\n
    at Parser.parseBody (D:\\EACApp\\eac-app-management\\node_modules\\cassandra-driver\\lib\\streams.js:194:66)\n
    at Parser._transform (D:\\EACApp\\eac-app-management\\node_modules\\cassandra-driver\\lib\\streams.js:137:10)\n
    at Parser.Transform._read (_stream_transform.js:205:10)\n    at Parser.Transform._write (_stream_transform.js:193:12)\n
    at writeOrBuffer (_stream_writable.js:352:12)\n    at Parser.Writable.write (_stream_writable.js:303:10)\n 
   at Protocol.ondata (_stream_readable.js:719:22)\n    at Protocol.emit (events.js:315:20)\n 

cqlsh> show version
[cqlsh 5.0.1 | Cassandra 3.11.2 | CQL spec 3.4.4 | Native protocol v4]
kokeuurv

kokeuurv1#

在DevCenter中不可能使用绑定变量,因为它们仅在以编程方式使用预准备语句时可用。
如果您在Node.js应用中使用了绑定变量,我最大的猜测是您传递的查询参数不正确,虽然很难说,因为您没有提供足够的信息。事实上,您在原始问题中提供的信息与您在评论部分中陈述的信息不匹配。
由于你是堆栈溢出的新手,一个友好的建议是你要学会如何提出好的问题。一般的指导是你(a)提供一个很好的问题总结,包括软件/组件版本,完整的错误消息+完整的堆栈跟踪;(B)描述你试图解决问题的方法,以及你所做调查的细节;以及(c)复制问题的最小样本代码。
在您的情况下,您需要提供:

  • CQL表模式
  • 您正在使用的驱动程序+版本
  • 最小样本代码

如果你在问题中没有提供足够的信息,你就不太可能从论坛中得到帮助,或者得不到正确的答案。干杯!

相关问题