With the current shell we can’t execute a parameterized query. But it can be done with the rest api as follows :
(Using named parameters)
curl -u Administrator:password -v http://localhost:8093/query -d ‘statement=select $gpid; &$gpid=“Value”’
With the new shell that will be available soon, it is possible to pass in parameterized queries. For named parameters :
cbq> \SET -$gpid 1;
cbq> select $gpid;
{
"requestID": "b8d3f9de-320e-4e88-89f0-5e1e9387a528",
"signature": {
"$1": "json"
},
"results": [
{
"$1": 1
}
],
"status": "success",
"metrics": {
"elapsedTime": "426.864µs",
"executionTime": "400.919µs",
"resultCount": 1,
"resultSize": 31
}
}
You can also use positional parameters :
cbq> \SET -args [1, Value];
cbq> \SET -args [1, "Value"];
cbq> select $1, $2;
{
"requestID": "e1a93610-4b67-49d9-811e-8caec09d4039",
"signature": {
"$1": "json",
"$2": "json"
},
"results": [
{
"$1": 1,
"$2": "Value"
}
],
"status": "success",
"metrics": {
"elapsedTime": "527.815µs",
"executionTime": "502.429µs",
"resultCount": 1,
"resultSize": 58
}
}