如何在 VoltDB 中获取查询结果

How to get result of query in VoltDB

我有一个带有 table 的 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 个结果。

提前致谢

queryresults[0] 是一个 VoltTable 对象。 toString() 方法将整个对象转换为字符串(不包括数据本身,仅包括元数据)。您需要遍历 VoltTable 中的行(通常这是使用 advanceRow() 完成的)并使用 getLong(0) 或 getLong("CODICE").

检索代码列

此外,最后的 return voltExecuteSQL() 将 return 一个空的 VoltTable[] 因为排队的 SQL 语句已经被执行,没有别的已排队