我想将这个非常简单的存储过程从 Sybase SQL 方言翻译成 HSQLDB 方言:
CREATE PROCEDURE dbo.some_proc
AS
BEGIN
SELECT int_param1 FROM control WHERE id_param = "SOME_PARAM" AND id_active = "Y"
END
在我看来,HSQLDB 的文档对存储过程非常神秘。我找不到正确的方法来做到这一点。我正在使用 HSQLDB 2.3.1 版。
我想将这个非常简单的存储过程从 Sybase SQL 方言翻译成 HSQLDB 方言:
CREATE PROCEDURE dbo.some_proc
AS
BEGIN
SELECT int_param1 FROM control WHERE id_param = "SOME_PARAM" AND id_active = "Y"
END
在我看来,HSQLDB 的文档对存储过程非常神秘。我找不到正确的方法来做到这一点。我正在使用 HSQLDB 2.3.1 版。
这可以表示为 HSQLDB 中的 FUNCTION
CREATE FUNCTION some_proc () RETURNS TABLE(VAL INT)
READS SQL DATA
BEGIN ATOMIC
RETURN TABLE(SELECT int_param1 FROM control WHERE id_param = 'SOME_PARAM' AND id_active = 'Y');
END
该函数返回一个包含所有值的单行表。
如果您的过程总是返回单个值,则声明可以不同以反映这一点:
CREATE FUNCTION some_proc2 () RETURNS INT
READS SQL DATA
BEGIN ATOMIC
RETURN (SELECT int_param1 FROM control WHERE id_param = 'SOME_PARAM' AND id_active = 'Y');
END