Stored procedures INOUT或OUT参数需要动态参数或变量

Stored procedures INOUT或OUT参数需要动态参数或变量,stored-procedures,hsqldb,Stored Procedures,Hsqldb,现在我正在尝试为HSQL-DB创建一些存储过程 我想创建一个新用户并返回新用户的ID 例如,我尝试这样创建过程 create procedure test(out param int) modifies sql data begin atomic set param = 1; end; =>叫它 declare param int ; call test(param); call param; =>错误 dynamic parameter or variable required as IN

现在我正在尝试为HSQL-DB创建一些存储过程

我想创建一个新用户并返回新用户的ID

例如,我尝试这样创建过程

create procedure test(out param int)
modifies sql data
begin atomic
set param = 1;
end;
=>叫它

declare param int ;
call test(param);
call param;
=>错误

dynamic parameter or variable required as INOUT or OUT argument
我找不到虫子--


再见。

这是您如何调用该过程的:

 declare param int;

 call test(param)

 call param

看起来是一样的,但每个语句都是单独执行的

这是您调用过程的方式:

 declare param int;

 call test(param)

 call param

看起来是一样的,但每个语句都是单独执行的

当我执行这个=>时,因为“;”在第二个callYes之前需要,只有第一个语句必须以“;”结尾。但是您必须逐个单独执行这些语句。当我使用HSQLDB2.2.9和两个早期版本进行测试时,它是有效的。执行创建过程后,首先执行
declare param int
,然后分别调用test(param)和
调用param
,一个接一个。我真想哭--这真的就像我站在一堵墙前,想知道“墙在哪里”:/不管怎样,谢谢如果你使用数据库管理器,每个语句都需要分别调用。当我执行这个=>时,因为“;”在第二个callYes之前需要,只有第一个语句必须以“;”结尾。但是您必须逐个单独执行这些语句。当我使用HSQLDB2.2.9和两个早期版本进行测试时,它是有效的。执行创建过程后,首先执行
declare param int
,然后分别调用test(param)和
调用param
。我真的想哭--这真的就像我站在一堵墙前,想知道“墙在哪里”:/不管怎样,如果你使用数据库管理器,每个语句都需要分别调用。