Мое требование - написать процедуру для добавления значений в таблицу СТРАН. Но сначала нужно проверить, существуют ли соответствующие значения в другой таблице, REGIONS, поскольку это внешний ключ. Только в том случае, если существуют значения, это допустимая вставка в таблицу СТРАН. В противном случае нет.Процедура проверки несуществующих значений в внешней таблице oracle
я написал кусок кода, но он бросает кучу ошибок:
ORA-00950 отсутствует ключевое слово PLS-00103 Встречающиеся символ ТОГДА, когда ожидает одно из следующих действий: (начало случае объявить, и исключение выхода) (переменные связывания) (продолжение закрыть текущий удалить выборки замка)
Я написал этот код:
CREATE OR REPLACE PROCEDURE addi1 (c_cntry_id IN OUT COUNTRIES.COUNTRY_ID%TYPE,
c_cntr_name IN COUNTRIES.COUNTRY_NAME%TYPE,
c_rgn_id IN COUNTRIES.REGION_ID%TYPE)
IS
l_exst number(1);
begin
select case
when exists
( select r.region_id from regions r where r.region_id IN
(SELECT REGION_ID from regions)
);
then 1
else 0
end into l_exst
if l_exst = 1
then
INSERT INTO countries(COUNTRY_ID, COUNTRY_NAME,REGION_ID)
values (c_cntry_id, c_cntr_name,c_rgn_id);
else
DBMS_OUTPUT.put_line('YOU CANNOT');
end if;
end;
/
Может кто-нибудь, пожалуйста, назовите меня, что я делаю неправильно, и как я могу изменить запрос?
спасибо, я выполнил вашу первую процедуру, и когда я ее выполнил, она дала мне ORA-00001 (единственное ограничение ключа). Теперь я не хочу исключений ORA. Только те, которые я определил (region_not_found exception). Я выполняю процедуру следующим образом: DECLARE outputValue CHAR (2): = 'Ff'; начало addi1 (outputValue, 'JustKii', 5); конец; / – user3400060