
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
24.03.2003, 13:33
|
|||
|---|---|---|---|
|
|||
Проверка существования внутри ХП... |
|||
|
#18+
Всем привет!!! Как внутри ХП правильно и оптимально проверить наличие записи в таблице по какому-либо условию (параметру ХП). В мелкософте можно было: if exists(select id from tTable where testColumn = @param1) begin ... end а как в ОРАКЛЕ? можно ли вернуть из хранимой набор данных путем: procedure spGetDataSet is begin select id from tTable1; end spGetDataSet; оракл ругается, что обязательно нужно INTO??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.03.2003, 17:14
|
|||
|---|---|---|---|
Проверка существования внутри ХП... |
|||
|
#18+
Например select id into my_id from tTable1; где my_id переменная в блоке pl/sql, подходящая по типу для возвращаемого значения, ну и потом if my_id > 0 ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.03.2003, 10:33
|
|||
|---|---|---|---|
|
|||
Проверка существования внутри ХП... |
|||
|
#18+
Если предполагается, что запись по условию может быть только одна, то в хранимой процедуре надо сделать блок: BEGIN SELECT kod_dom INTO k FROM kv WHERE kod_kv = reccap.kv; -- запись нашлась EXCEPTION WHEN OTHERS THEN --ничего нет kerr := SQLCODE; terr := SQLERRM (SQLCODE); INSERT INTO error_capicity VALUES (reccap.pn, reccap.kp, 'kod_kv', terr); END; Если записей может >1, то надо или обработать сооответствующий EXCEPTION, или открыть соответствующий курсор и в цикле обработки проверить сколько он вернул записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=52&tablet=1&tid=1991328]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
143ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 439ms |

| 0 / 0 |
