2017-01-16 59 views
0

我想從Sybase SQL方言這個非常簡單的存儲過程轉換爲HSQLDB方言:如何將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。

回答

0

這可以在HSQLDB

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