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