powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проверка существования внутри ХП...
3 сообщений из 3, страница 1 из 1
Проверка существования внутри ХП...
    #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
Проверка существования внутри ХП...
    #32125886
Фотография hinotf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например
select id
into my_id
from tTable1;
где my_id переменная в блоке pl/sql, подходящая по типу для возвращаемого значения, ну и потом

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


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