|
|
|
Проверка существования внутри ХП...
|
|||
|---|---|---|---|
|
#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, 13:33 |
|
||
|
Проверка существования внутри ХП...
|
|||
|---|---|---|---|
|
#18+
Например select id into my_id from tTable1; где my_id переменная в блоке pl/sql, подходящая по типу для возвращаемого значения, ну и потом if my_id > 0 ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2003, 17:14 |
|
||
|
Проверка существования внутри ХП...
|
|||
|---|---|---|---|
|
#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, или открыть соответствующий курсор и в цикле обработки проверить сколько он вернул записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2003, 10:33 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=2798&tid=1991328]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 308ms |

| 0 / 0 |
