读书人

. 不显示删除回复 显示所有回复 显示星

发布时间: 2013-01-23 10:44:49 作者: rapoo

. 不显示删除回复 显示所有回复 显示星级回复 显示得分回复 收藏 关于存储过程动态截取字符串问题【急急】
数据库传过去是这样的格式
101518-销售合同评审流程 [ HTP-20130114-001 ] |101470-销售合同评审流程 [ HTP-20130109-001 ]
我只取前面的ID
101518 这样的
客户有可能传三个这样的 有可能1个 有可能更多

请问存储过程如何截取? 存储 数据库
[解决办法]
oracle


create or replace procedure strcut(str varchar2)
as
type c_array is table of varchar2(10) index by binary_integer;
p number default 0;
idx number default 0;
strc varchar2(200);
ca c_array;
begin
strc:=str;
loop
p:=instr(strc,'-',1);
exit when p=0;
ca(idx):=substr(strc,1,p-1);
print(ca(idx));
idx:=idx+1;

p:=instr(strc,'
[解决办法]
',1);
exit when p=0;
strc:=substr(strc,p+1,length(strc));
end loop;
end strcut;
/


call strcut('101518-销售合同评审流程 [ HTP-20130114-001 ]
[解决办法]
101470-销售合同评审流程 [ HTP-20130109-001 ]');

读书人网 >Java Web开发

热点推荐