У меня есть хранимая процедура Oracle. Любой код субкода или стиля передается. В настоящее время это строки обновления, если значение не равно нулю. Я хочу добавить логику, чтобы сделать обновление только в том случае, если строки существуют в таблице, а если нет, мне нравится печатать сообщение типа «Подкод xxxx не существует» или «Код стиля xxxx не существует». Я не думаю, что здесь сливаются работы.Строки обновления Oracle Stored Procedure, если существуют записи
create or replace PROCEDURE "REMOVE_PRICES"
(
RESULT OUT VARCHAR2
, STYLECODE_ IN NUMBER
, SUBCODE_ IN NUMBER
) AS
BEGIN
IF (SUBCODE_ is null AND STYLECODE_ is null)
THEN
raise_application_error(-20005, 'ERROR: Please provide either SUBCODE or STYLECODE!');
END IF;
IF SUBCODE_ IS NOT NULL THEN
UPDATE prices
SET type = null
WHERE subcode=SUBCODE_;
RESULT := SQL%ROWCOUNT || ' price for subcode ' || SUBCODE_ || ' is removed';
ELSIF STYLECODE_ IS NOT NULL THEN
UPDATE prices
SET type = null
WHERE stylecode=STYLECODE_;
RESULT := SQL%ROWCOUNT || ' price for stylecode ' || STYLECODE_ || ' is removed';
END IF;
END REMOVE_PRICES;
Разве вы не можете просто решить, какое сообщение для показа на основе того, является ли SQL% ROWCOUNT нулевой или ненулевой? –
Спасибо Алекс. Я был ослеплен. :) – user2482822