CftClub.ru
Клуб специалистов ЦФТ-Банк

BULK COLLECT

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих
Предыдущая тема :: Следующая тема  
Автор Сообщение
CSmaster
Участник со стажем


Вступление в Клуб: 24.09.2021
СообщениеВс Окт 24, 2021 21:12   BULK COLLECT Ответить с цитатой
Полезность: Нет оценки
Добрый день! Уважаемые знатоки, подскажите пожалуйста, как легально (без использования PLSQL вставок) использовать конструкцию bulk collect и forall из PLPLUS. Может есть какая нибудь директива? Нужно чтобы в сгенерированом в итоге PLSQL коде использовались эти конструкции. Спасибо.
Эмиралька
Эксперт


Вступление в Клуб: 09.11.2015
СообщениеПн Окт 25, 2021 15:43   Re: BULK COLLECT Ответить с цитатой
Полезность: 2
Цитата:
Добрый день! Уважаемые знатоки, подскажите пожалуйста, как легально (без использования PLSQL вставок) использовать конструкцию bulk collect и forall из PLPLUS. Может есть какая нибудь директива? Нужно чтобы в сгенерированом в итоге PLSQL коде использовались эти конструкции. Спасибо.

Код:

var subtype arr_str is ::[REPS_DATA].[LIB_TYPE].arr_str;
var aNumbers arr_str;
    select x(x.[MAIN_V_ID] in ::[AC_FIN] where rownum<=10
    into aNumbers;

aNumbers.delete;
var type main is
    select x(x.[MAIN_V_ID] in ::[AC_FIN] where rownum<=10;
var refCur utils.ref_cursor;
refCur.open(main);
loop
    refCur.fetch_limit(5, aNumbers);
    exit when aNumbers.count = 0;
end loop;
refCur.close;

update
    for i in 1 .. aNumbers.count loop -- exceptionloop
u (u.[MAIN_V_ID] = aNumbers(i))
where u.[MAIN_V_ID] = aNumbers(i)
;
CSmaster
Участник со стажем


Вступление в Клуб: 24.09.2021
СообщениеПн Окт 25, 2021 21:52   Re: BULK COLLECT Ответить с цитатой
Полезность: Нет оценки
Код:

var subtype arr_str is ::[REPS_DATA].[LIB_TYPE].arr_str;
var aNumbers arr_str;
    select x(x.[MAIN_V_ID] in ::[AC_FIN] where rownum<=10
    into aNumbers;

aNumbers.delete;
var type main is
    select x(x.[MAIN_V_ID] in ::[AC_FIN] where rownum<=10;
var refCur utils.ref_cursor;
refCur.open(main);
loop
    refCur.fetch_limit(5, aNumbers);
    exit when aNumbers.count = 0;
end loop;
refCur.close;

update
    for i in 1 .. aNumbers.count loop -- exceptionloop
u (u.[MAIN_V_ID] = aNumbers(i))
where u.[MAIN_V_ID] = aNumbers(i)
;

Спасибо Эмиралька, можно поподробнее? Этот код автоматом подхватит языковые конструкции по теме?
Эмиралька
Эксперт


Вступление в Клуб: 09.11.2015
СообщениеПт Окт 29, 2021 12:36   Re: BULK COLLECT Ответить с цитатой
Полезность: Нет оценки
CSmaster пишет:
Спасибо Эмиралька, можно поподробнее? Этот код автоматом подхватит языковые конструкции по теме?

Не подхватит, а в них транслируется.
Вставьте пример в какую-нибудь операцию и посмотрите, во что он странслируется.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru