Как получить результат запроса в VoltDB - PullRequest
0 голосов
/ 12 октября 2019

У меня есть база данных VoltDB с таблицей. Я хочу получить результат моей хранимой процедуры VoltDB. Это код

import org.voltdb.*;

public class isola extends VoltProcedure {

 public final SQLStmt getLeast = new SQLStmt(" SELECT codice FROM prova WHERE ID=1;" );


 public VoltTable[] run()  throws VoltAbortException {

   voltQueueSQL(getLeast);
     VoltTable[] queryresults = voltExecuteSQL(); 

   String results= queryresults[0].toString();

   System.out.println("String: \n " + results);


   return voltExecuteSQL();
   }


}

И это вывод

String: 
  header size: 14
 status code: -128 column count: 1
(CODICE:INTEGER),  rows -
  2

Правильный результат запроса только 2.

Почему я получаю этот результат? В результате я хочу получить только 2.

Заранее спасибо

1 Ответ

0 голосов
/ 14 октября 2019

queryresults [0] является объектом VoltTable. Метод toString () преобразует весь этот объект в строку (которая не включает сами данные, только метаданные). Вам нужно перебрать строки в VoltTable (обычно это делается с помощью advanceRow ()) и извлечь столбец кодировки, используя getLong (0) или getLong («CODICE»).

Кроме того, окончательный возвратvoltExecuteSQL () вернет пустой VoltTable [], потому что оператор SQL в очереди уже был выполнен, а больше ничего не было в очереди.

...