【发布时间】:2015-12-02 04:35:38
【问题描述】:
我的要求是编写一个在 COUNTRIES 表中添加值的过程。但是,首先它应该检查对应的值是否存在于另一个表中,REGIONS 因为它是一个外键。仅当值存在时才允许插入 COUNTRIES 表。否则,没有。
我写了一段代码,但它抛出了一堆错误:
ORA-00950 缺少关键字 PLS-00103 遇到符号 THEN when 期待以下之一:(开始案例声明和异常 exit) (一个绑定变量) (继续关闭当前删除获取锁)
我写了这段代码:
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;
/
有人可以指导我做错了什么以及如何修改查询吗?
【问题讨论】:
标签: oracle stored-procedures foreign-keys