2017-01-16 5 views
0

私はHSQLDBの方言にSybaseのSQLの方言から、この非常に単純なストアドプロシージャを翻訳したいと思います:私の謙虚な意見では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 
関連する問題