declare
cursor cur_op is
select b.organ_id as organ_id, a.organ_name as organ_name,name,user_name from jz_user_create a, db_designer.dic_organ@mz_jiuzhu.world b
where a.organ_name = b.organ_name
and a.if_op = '1'
order by a.organ_name;for rec in cur_ch loop
if(A中是否存在数据A)then
insert ;
else
update;
end if;
commit;
end loop ;不知道这个if 的判断该怎么写了,对语法不是很熟悉。
本来想写if exists(select 'x' from A where x=a).但是想想这样写好像是不行的吧
大家给帮帮忙。看看怎么写判断
菜鸟在这谢谢大家了
cursor cur_op is
select b.organ_id as organ_id, a.organ_name as organ_name,name,user_name from jz_user_create a, db_designer.dic_organ@mz_jiuzhu.world b
where a.organ_name = b.organ_name
and a.if_op = '1'
order by a.organ_name;for rec in cur_ch loop
if(A中是否存在数据A)then
insert ;
else
update;
end if;
commit;
end loop ;不知道这个if 的判断该怎么写了,对语法不是很熟悉。
本来想写if exists(select 'x' from A where x=a).但是想想这样写好像是不行的吧
大家给帮帮忙。看看怎么写判断
菜鸟在这谢谢大家了
一般判断用COUNT进行,存在的话>0
定义 一个变量 把select 的值into 到变量中
再判断变量 >0 就成
ps:就为了这么简单的一个功能写个存储过程,费解费解
if(rec.organ_name='A' and rec.organ_id=4)then
insert ;
else
update;
end if;
commit;
end loop ;不过不清楚你的业务。
MERGE INTO A m
USING (SELECT b.organ_id AS organ_id, a.organ_name AS organ_name, NAME, user_name
FROM jz_user_create a, db_designer.dic_organ@mz_jiuzhu.world b
WHERE a.organ_name = b.organ_name AND
a.if_op = '1'
ORDER BY a.organ_name) n
ON (m.organ_id = n.organ_id)
WHEN MATCHED THEN
UPDATE SET m.organ_name = n.organ_name, m.user_name = n.user_name
WHEN NOT MATCHED THEN
INSERT VALUES (n.organ_id, n.organ_name, n.user_name)