在VoltDB中,当我将空字符串作为参数传递时,如何在列中存储NULL?

时间:2018-05-16 13:08:15

标签: voltdb

目前,当我在VoltDB存储过程参数中传递空字符串时,它存储为空字符串。 当我将空字符串作为参数(Just Like Oracle)传递时,有没有办法存储NULL?

1 个答案:

答案 0 :(得分:1)

在VoltDB中,空字符串与NULL不同。 Oracle是我所知道的唯一认为这些数据库相同的数据库。如果要存储NULL,可以简单地将NULL传递给VoltDB存储过程。

如果您希望将空字符串存储为NULL,我认为执行此操作的最佳方法是在某些Java存储过程代码中使用条件语句。如果输入为“”,则存储为null。像这样:

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();

    }
}