В VoltDB пустые строки - это не то же самое, что NULL. Oracle - единственная из известных мне баз данных, которая считает их равными. Вы можете просто передать NULL в хранимую процедуру VoltDB, если хотите сохранить NULL.
Если вы хотите, чтобы пустая строка хранилась как NULL, я думаю, что лучшим способом сделать это было бы условное выражение в некотором коде хранимой процедуры Java. Если ввод "", то хранить ноль. Вот так:
public class Example extends VoltProcedure {
public final SQLStmt sql = new SQLStmt(
"INSERT INTO t (col1, col2) VALUES (?,?);");
public VoltTable[] run(long id, String val) throws VoltAbortException {
if (val.equals("")) {
val = null;
}
voltQueueSQL( sql, id, val );
return voltExecuteSQL();
}
}