Поскольку я новичок в plpgSQL,
Я застрял при переносе запроса Oracle в PostgreSQL.
Запрос Oracle:
create or replace FUNCTION employee_all_case(
p_ugr_id IN integer,
p_case_type_id IN integer
)
RETURN number_tab_t PIPELINED
-- LANGUAGE 'plpgsql'
-- COST 100
-- VOLATILE
-- AS $$
-- DECLARE
is
l_user_id NUMBER;
l_account_id NUMBER;
BEGIN
l_user_id := p_ugr_id;
l_account_id := p_case_type_id;
FOR cases IN
(SELECT ccase.case_id, ccase.employee_id
FROM ct_case ccase
INNER JOIN ct_case_type ctype
ON (ccase.case_type_id=ctype.case_type_id)
WHERE ccase.employee_id = l_user_id)
LOOP
IF cases.employee_id IS NOT NULL THEN
PIPE ROW (cases.case_id);
END IF;
END LOOP;
RETURN;
END;
--$$
Когда я выполняю эту функцию,Я получаю следующий результат
select * from table(select employee_all_case(14533,1190) from dual)
![enter image description here](https://i.stack.imgur.com/fAgsC.png)
Мой вопрос здесь: я действительно не понимаю конвейерную функцию и как я могу получить тот же результатв PostgreSQL как запрос Oracle?
Пожалуйста, помогите.