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

Выборка из справочника: цикл или логическое условие

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


Вступление в Клуб: 18.01.2008
СообщениеСр Авг 27, 2008 09:42   Выборка из справочника: цикл или логическое условие Ответить с цитатой
Полезность: Нет оценки
Будут ли два примера ниже выполнять одно и то же?

Код:
for st in ::[VPB_DECL_STATE] where st.[DECL_ON_GET] = v_this
loop
   st.[DELETE#AUTO];
end loop;

Код:
::[VPB_DECL_STATE]([DECL_ON_GET] = v_this).[DELETE#AUTO];

v_this - текущий экземпляр Заявки
lexus
Профи


Вступление в Клуб: 28.09.2007
СообщениеСр Авг 27, 2008 10:12    Ответить с цитатой
Полезность: 1
Разные конструкции.
Во втором варианте, в лучшем случае, операция выполнится лишь над одним экземпляром с [DECL_ON_GET] = v_this (если таких несколько).

Цитата:
Фактически конструкция представляет собой упрощенный вариант модификатора %locate (см. 1.2.13.16), которая дополнительно вычисляется на этапе компиляции. При этом в зависимости от заданной опции поиска прагмой SUBSTITUTE (см. п.1.2.14) используется точный поиск (по умолчанию, с опцией exact – см.п.1.2.13.3) с генерацией исключений, либо обычный поиск без генерации исключений, когда в случае отсутствия экземпляра будет возвращено пустое значение, а в случае нескольких экземпляров будет возвращен первый из найденных.
lexoos
Участник - экстремал


Вступление в Клуб: 06.11.2007
СообщениеПт Авг 29, 2008 13:47    Ответить с цитатой
Полезность: Нет оценки
lexus пишет:
Во втором варианте, в лучшем случае, операция выполнится лишь над одним экземпляром с [DECL_ON_GET] = v_this (если таких несколько).

по умолчанию, сгенерится ошибка to_many_rows


Последний раз редактировалось: lexoos (Пт Авг 29, 2008 13:51), всего редактировалось 1 раз
lexus
Профи


Вступление в Клуб: 28.09.2007
СообщениеПт Авг 29, 2008 13:50    Ответить с цитатой
Полезность: Нет оценки
Цитата:
в случае нескольких экземпляров будет возвращен первый из найденных


Сам не проверял. Думаю, там прагмой можно это поведение регулировать.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

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