如何在存储过程中声明变量。我在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无法一起应用"
答案 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工作。