Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проверка существования внутри ХП... / 3 сообщений из 3, страница 1 из 1
24.03.2003, 13:33
    #32125559
Проверка существования внутри ХП...
Всем привет!!!

Как внутри ХП правильно и оптимально проверить наличие записи в таблице по какому-либо условию (параметру ХП). В мелкософте можно было:

if exists(select id from tTable where testColumn = @param1) begin
...
end

а как в ОРАКЛЕ?

можно ли вернуть из хранимой набор данных путем:

procedure spGetDataSet is
begin
select id from tTable1;
end spGetDataSet;

оракл ругается, что обязательно нужно INTO???
...
Рейтинг: 0 / 0
24.03.2003, 17:14
    #32125886
hinotf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования внутри ХП...
Например
select id
into my_id
from tTable1;
где my_id переменная в блоке pl/sql, подходящая по типу для возвращаемого значения, ну и потом

if my_id > 0 ...
...
Рейтинг: 0 / 0
25.03.2003, 10:33
    #32126305
Aleksandr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования внутри ХП...
Если предполагается, что запись по условию может быть только одна, то в хранимой процедуре надо сделать блок:
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, или открыть соответствующий курсор и в цикле обработки проверить сколько он вернул записей.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проверка существования внутри ХП... / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]