2017-01-16 4 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 
Смежные вопросы