如何在voltDB存储过程中声明变量

时间:2018-06-19 04:43:50

标签: voltdb

如何在存储过程中声明变量。我在MS Sql Server中尝试使用以下代码。

创建程序TN     开始         DECLARE kkk INTEGER;             SET KKK = 5;         IF(KKK< 10)             SELECT * FROM XXXX;         其他             SELECT * FROM XXXX WHEREYYYY =' French&#39 ;;     END;

但我收到错误" DDL和DML无法一起应用"

1 个答案:

答案 0 :(得分:1)

只能在Java存储过程中声明变量。在VoltDB中,所有复杂的存储过程(如您在此处显示的过程)都必须使用Java来完成。

您想要的示例可能是这样的:

public class TN extends VoltProcedure {

    int kkk = 5;

    public final SQLStmt sql1 = new SQLStmt(
        "SELECT * FROM XXXX;");

    public final SQLStmt sql2 = new SQLStmt(
        "SELECT * FROM XXXX WHERE YYYY ='French';");

    public VoltTable[] run(int kkk) throws VoltAbortException {

        if (kkk < 10) {

        voltQueueSQL( sql1 );
        return voltExecuteSQL();

        } else {

        voltQueueSQL( sql2 );
        return voltExecuteSQL();

        }

    }
}

有关更多信息,请参见文档的“存储过程”部分: https://docs.voltdb.com/tutorial/Part5.php

完全公开:我在VoltDB工作。