set serverout on
declare
var_tmp varchar2(4000) :='';
var_element varchar2(4000) :='';
n_length Number := length('\/');
begin
values_array := VARCHAR_ARRAY(); -- 初始化数组
for i in (select * from sapsr3.zmdm_mthdr where zmtpre in('6200001220','6200001225'))
loop
dbms_output.put_line('导入编号:'||i.zmtpre||' 长描述:'||i.znote_tzz ||' 模板编码:'||i.zkey || '特征值数量:' ||);
var_tmp := i.znote_tzz;
while instr(var_tmp, '\/') >0 loop
var_element := substr(var_tmp, 1, instr(var_tmp, '\/') - 1);
var_tmp := substr(var_tmp, instr(var_tmp, '\/') + n_length, length(var_tmp));
dbms_output.put_line('特征量:' || var_element);
values_array.extend; -- 扩展数组, 以便于给数组赋值
values_array(i) := var_element; -- 赋值的时候,下标必须从 1 开始,否则会出现 “ 下标超出数量 ” 的错误
end loop;
for l in ( select * from sapsr3.ZMDM_MM_TZL where zkey=i.zkey order by serno asc)
dbms_output.put_line( '特征量 : ' || values_array(i));
end loop;
end loop;
commit;
end;