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

Перенос из массива в массив
На страницу Пред.  1, 2
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы
Предыдущая тема :: Следующая тема  
Автор Сообщение
Эмиралька
Эксперт


Вступление в Клуб: 09.11.2015
СообщениеПн Июл 22, 2024 06:21    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
В цикле по массиву, если реквизит не индексный.
Т.е. если массив создавался так - p_data(номер счета).какой-то реквизит = ..., тогда можно проверить exists(p_data(номер счета)), а если так p_data(1).Номер_счета = ..., тогда нет


поправлю?
Volod пишет:
...тогда можно проверить exists(p_data(номер счета))
вообще=то p_data.exists(номер счета)
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеПн Июл 22, 2024 09:09    Ответить с цитатой
Полезность: Нет оценки
Если строго подходить к синтаксису в переписке Smile
pabrz
Участник со стажем


Вступление в Клуб: 27.09.2022
СообщениеВт Июл 23, 2024 01:40    Ответить с цитатой
Полезность: Нет оценки
Если вам прямо очень-очень хочется на exist проверять, то чего не сделать varray и пробивать обычным sql запросом содержимое?
Эмиралька
Эксперт


Вступление в Клуб: 09.11.2015
СообщениеСр Июл 24, 2024 13:39    Ответить с цитатой
Полезность: Нет оценки
pabrz пишет:
Если вам прямо очень-очень хочется на exist проверять, то чего не сделать varray и пробивать обычным sql запросом содержимое?

С varray проще использовать member of
-Eugene-
Участник


Вступление в Клуб: 21.04.2008
СообщениеСр Июл 24, 2024 15:19    Ответить с цитатой
Полезность: Нет оценки
Код:

type t_key is [EXECUTORY_PROCES].[FSSP_SUBTYPE].AccountTransactionDatumType.AccountNumber%type;
type t_accs is table of varchar(1) index by varchar2(20); -- index by t_key
accs t_accs; -- массив счетов
acc t_key; -- key

answer ::[EXECUTORY_PROCES].[FSSP_TYPE].AccountAnswer; -- обрабатываемый ответ. в реале должен быть заполнен
begin
  if answer.A_Data.count > 0 then
     for i in answer.A_Data.first..answer.A_Data.last loop
        acc := answer.A_Data(i).AccountTransactionDatum.AccountNumber;
        if acc is not null then
           accs(acc) := true;
        end if;
     end loop;
  end if;
  -- вывод найденных счетов
  acc := accs.first;
  while acc is not null loop
     debug_pipe('acc = '||acc, 0);
     acc := accs.next(acc);
  end loop;
end;
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы Часовой пояс: GMT + 3
На страницу Пред.  1, 2
Страница 2 из 2

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