Идентификатор 'PIPELINED' должен быть объявлен - PullRequest
0 голосов
/ 11 марта 2019

Мой код:

CREATE OR REPLACE FUNCTION get_tab_ptf (p_rows IN NUMBER) 
RETURN PIPELINED AS 
BEGIN FOR i IN 1 .. p_rows 
LOOP 
PIPE ROW('Value is '||i);
END LOOP;
RETURN; 
END;

Я получаю ошибку

: PLS-00201: идентификатор 'PIPELINED' должен быть объявлен

в чем может быть решение?

1 Ответ

1 голос
/ 11 марта 2019

Сначала вы должны определить тип коллекции для элементов, которые вы планируете вернуть из своей функции. Поскольку вы возвращаете строку, table of VARCHAR2 должен быть вашим предпочтительным вариантом.

create or replace type numval_type as table of VARCHAR2(30);

Теперь укажите этот тип возврата перед ключевым словом PIPELINED.

CREATE OR REPLACE FUNCTION get_tab_ptf (p_rows IN NUMBER) 
RETURN  numval_type PIPELINED AS  -- type should be specified here after return
BEGIN FOR i IN 1 .. p_rows 
LOOP 
  PIPE ROW('Value is '||i);
 END LOOP;
RETURN; 
END;
/

Назовите это как

select * from TABLE(get_tab_ptf(100));

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...