Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Есть ли для процедуры аналог функции EXIST(SELECT ..)?  [new]
o52
Member

Откуда:
Сообщений: 20
Не подскажите, есть ли для процедуры аналог функции EXIST(SELECT ..)? А то я так рассчитывал на эту функцию :)
7 июл 06, 21:18    [2856704]     Ответить | Цитировать Сообщить модератору
 Небольшая поправка  [new]
o52
Member

Откуда:
Сообщений: 20
Я имел ввиду использование указанной функции EXIST() в процедуре внутри пакета.
7 июл 06, 21:21    [2856713]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли для процедуры аналог функции EXIST(SELECT ..)?  [new]
o52
Member

Откуда:
Сообщений: 20
решил в общем так:

 select count(id) into my_var ...;
7 июл 06, 21:40    [2856754]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли для процедуры аналог функции EXIST(SELECT ..)?  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116101
o52
решил в общем так:

 select count(id) into my_var ...;


Неважное решение. Для того, чтобы узнать факт существования, Вы дергаете всю таблицу.

Так

 select count(*) into my_var from dual
                where exists(select null from tabl where fileld = v_var)

Или так

FOR I IN (SELECT 1 from tabl where fileld = v_var)
LOOP
-- exists
END LOOP;
7 июл 06, 22:06    [2856829]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли для процедуры аналог функции EXIST(SELECT ..)?  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10042
dmidek
select count(*) into my_var from dual
where exists(select null from tabl where fileld = v_var)

I believe

select count(id) into my_var ...
AND ROWNUM=1;

would be simpler, which actually is almost same as:

dmidek
Или так

FOR I IN (SELECT 1 from tabl where fileld = v_var)
LOOP
-- exists
END LOOP;

SY.
8 июл 06, 00:23    [2857351]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли для процедуры аналог функции EXIST(SELECT ..)?  [new]
Barkovsky
Member

Откуда: Санкт-Петербург
Сообщений: 2655
про это.
8 июл 06, 00:34    [2857375]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли для процедуры аналог функции EXIST(SELECT ..)?  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116101
Barkovsky
про это.


Спасибо, блестящая ссылка. Можно читать как криминальный роман
"Да, были люди..." :-)
8 июл 06, 00:56    [2857429]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли для процедуры аналог функции EXIST(SELECT ..)?  [new]
Barkovsky
Member

Откуда: Санкт-Петербург
Сообщений: 2655
SY до сих пор здесь)
8 июл 06, 16:17    [2858192]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли для процедуры аналог функции EXIST(SELECT ..)?  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116101
Не только SY :)
Просто сам накал дискуссии и уровень участников , если честно, впечатлил.
Если уж зашла речь, то пример SY впечатлил больше всего.
8 июл 06, 16:26    [2858209]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли для процедуры аналог функции EXIST(SELECT ..)?  [new]
Barkovsky
Member

Откуда: Санкт-Петербург
Сообщений: 2655
а, это да) накал был)
8 июл 06, 16:41    [2858231]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить