我想通过存储过程实现一个这样的功能,存储过程接受一个输入参数(array类型),然后循环遍历array中的元素,根据每个元素去另外一个表查询,如果在另外一个表存在就更新count+1,否则就新插入一条记录!存储过程输出一个参数(number类型),插入或更新的条数,代码如下,不知可行否?请指教,谢谢!
create or replace procedure INSER_OR_UPDATE_WORLD_TOTAL(arr in varchar_array, result out number)
as
begin
for i in arr.first...arr.last LOOP
select count(*) into v_ret from world_total where sysid =arr(i);
if(v_ret > 0)
begin
result+=update world_total set count=count+1 where sysid =arr(i)
end
else
begin
result+=insert into world_total(SYSID,COUNT) values(arr(i),1)
end
end LOOP
------解决方案--------------------
应该先定义type varchar_array为数组类型
------解决方案--------------------
入门菜鸟表示刚知道ORACLE里也能用数组的……学习一下