Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Программирование для начинающих - общие вопросы.
  • Страница:
  • 1

ТЕМА: Как вернуть запрос из функции?

Как вернуть запрос из функции? 24 июнь 2011 10:42 #632

  • sepia
  • sepia аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 25
  • Спасибо получено: 2
Подскажите еще, как вернуть выборку из процедуры/функции . Есть ли для этого какие-либо стандартные процедуры в Oracle?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Как вернуть запрос из функции? 24 июнь 2011 11:53 #635

  • Alex
  • Alex аватар
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 18
  • Спасибо получено: 0
Стандартно в Oracle для возврата выборки из процедуры/функции применяется REFCURSOR.

Самый простой способ для возврата последовательности чисел:


CREATE OR REPLACE FUNCTION pivot_number (
p_from NUMBER
, p_to NUMBER
) RETURN tbl_number AS
v_result tbl_number := tbl_number();
BEGIN
FOR i IN p_from .. p_to LOOP
v_result.extend();
v_result(v_result.LAST) := i;
END LOOP;
RETURN v_result;
END;
/

Если нужно вернуть несколько полей, тогда создаем объектный тип

CREATE OR REPLACE TYPE t_test AS object (
a NUMBER(9)
, b NUMBER(9)
)
/
CREATE OR REPLACE TYPE tbl_test AS TABLE OF t_test
/

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Как вернуть запрос из функции? 15 июль 2011 08:46 #1869

  • leo000
  • leo000 аватар
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 18
  • Репутация: 1
  • Спасибо получено: 0
У меня что то не получается способ для возврата последовательности чисел, в чем могут быть ошибки ?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Как вернуть запрос из функции? 09 авг 2011 19:14 #3034

если стоит необходимость вернуть запрос из функции или же с процедуры то применяют обычно стандарт REFCURSOR

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Как вернуть запрос из функции? 12 авг 2011 17:48 #3285

  • tuz.v
  • tuz.v аватар
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 16
  • Спасибо получено: 0

sepia пишет: Подскажите еще, как вернуть выборку из процедуры/функции . Есть ли для этого какие-либо стандартные процедуры в Oracle?

я использую вот этот способ
CREATE OR REPLACE TYPE t_test AS object (
a NUMBER(9)
, b NUMBER(9)
)
/
CREATE OR REPLACE TYPE tbl_test AS TABLE OF t_test
/

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Как вернуть запрос из функции? 05 янв 2017 17:33 #7829

  • admin
  • admin аватар
  • Не в сети
  • Администрация форума
  • Администрация форума
  • Сообщений: 148
  • Репутация: 2
  • Спасибо получено: 7
Постите топики в соответсвующие разделы нашего форума! Тщательнее, товарищи!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1