create or replace procedure DP_TEST(h_key in VARCHAR2,h_value in VARCHAR2 )
如上面所示:我要建立一个插入数据库的储存过程,这个储存过程传入两个参数,一个h_key,一个h_value. 其中h_key的值形式 A;B;C;D;E;F........ 对应的h_value 的值形式 1;2;3;4;5;6.......
现在的需求是我要怎么把h_key和h_value按照分号分割开?把分割开之后每一个key 对应的value 插入数据库(A 对应1,B 对应2)。
还有就是我要怎么得到分割之后的长度啊!比如说用数组来分割,那么我怎么得到数组长度。
------解决方案--------------------
未测试,试一下
create or replace procedure DP_TEST(h_key in VARCHAR2,h_value in VARCHAR2 ) is
v_key VARCHAR2(100);
v_value VARCHAR2(100);
v_splitkey varchar2(10):=';';
begin
loop
exit when h_key is null or h_value is null;
if instr(h_key,v_splitkey)>0 then
v_key:=substr(h_key,1,instr(h_key,v_splitkey)-1);
h_key:=substr(h_key,instr(h_key,v_splitkey)+1);
else
v_key:=h_key;
h_key:=null;
end if;
if if instr(h_value,v_splitkey)>0 then
v_value:=substr(h_value,1,instr(h_value,v_splitkey)-1);
h_value:=substr(h_value,instr(h_value,v_splitkey)+1);
else
v_value:=h_value;
h_value:=null;
end if;
insert into t(key,value)values(v_key,v_value);
end loop;
commit;
end;