我有一个带有表的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()方法将整个对象转换为String(不包含数据本身,仅包含元数据)。您需要遍历VoltTable中的行(通常是使用advanceRow()完成此操作,并使用getLong(0)或getLong(“ CODICE”)检索codice列。
此外,最后返回的voltExecuteSQL()将返回一个空的VoltTable [],因为已排队的SQL语句已执行,并且没有其他排队。