在oracle存储过程中如何把R2,R3,R4,R5中用数组把R2 R3 R4 R5分离出来 不太明白你的意思。你是不是将R2,R3,R4,R5等放在数组中进行调用呀?如果这样应该可以的,只要动态指定回滚段即可。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 R2,R3,R4,R5是什么,是一个字串吗?如果是,使用instr和substr函数就可以分离出R2 R3 R4 R5. R2,R3,R4,R5是一个前台传来的长串,用instr 和substr啥分离 V_FldId := Pub.Split( I_FldStr , ',' ) ; V_ColCnt := V_FldId.COUNT ; FOR V_Cntlzl IN 1..V_ColCnt LOOP V_lzl1:=V_lzl(V_Cntlzl); htp.p(V_lzl1); END LOOP;V_LZL是我定义一个数组呀。I_FldStr是前台提交一个不定项的串,如R2,r3,r4,r5,也有可能是R2,R3,R4 V_lzl1:=V_lzl(V_Cntlzl); htp.p(V_lzl1);上面这句我是仿vbscript上写法,我知道是错?帮帮忙 declare TYPE temp_array IS ARRAY(20) OF VARCHAR2(10); --假设最多有20个元素 temparray temp_array; str varchar2(100) :='R1,R2,R3,R4'; lastpos number(3); curpos number(3); i number(3) :=1;begin -- 数组初始化 temparray := temp_array(); temparray.Extend(20); lastpos := 1; loop curpos := instr(str,',',lastpos,1); if curpos <> 0 then temparray(i) := trim(substr(str,lastpos,curpos - lastpos)); DBMS_OUTPUT.PUT_LINE('element is: '||temparray(i)); lastpos := curpos + 1; else temparray(i) := trim(substr(str,lastpos)); DBMS_OUTPUT.PUT_LINE('element is: '||temparray(i)); exit; end if; i := i + 1; end loop;end;/ Oracle根据去掉某一字段相同值的记录 Oracle 截取字符串 ORACLE脚本执行返回状态 动态sql的一个问题 高难度!!急!!!关于pb+oracle处理图象的问题,200分相送!!!!!!!!!! 求数据合并的sql语句 9i安装问题 统计树节点下某个节点的个数量,分数不够,可以再加 又一个怪问题?? 关于在PL/SQL读写文件的问题。(在线等待) 一个关于时间的问题!急!急!急!急!急! LOOP循环中如何控制COMMIT?
V_FldId := Pub.Split( I_FldStr , ',' ) ;
V_ColCnt := V_FldId.COUNT ;
FOR V_Cntlzl IN 1..V_ColCnt LOOP
V_lzl1:=V_lzl(V_Cntlzl);
htp.p(V_lzl1);
END LOOP;
V_LZL是我定义一个数组呀。
I_FldStr是前台提交一个不定项的串,如R2,r3,r4,r5,也有可能是R2,R3,R4 V_lzl1:=V_lzl(V_Cntlzl);
htp.p(V_lzl1);
上面这句我是仿vbscript上写法,我知道是错?帮帮忙
TYPE temp_array IS ARRAY(20) OF VARCHAR2(10); --假设最多有20个元素
temparray temp_array;
str varchar2(100) :='R1,R2,R3,R4';
lastpos number(3);
curpos number(3);
i number(3) :=1;
begin
-- 数组初始化
temparray := temp_array();
temparray.Extend(20);
lastpos := 1;
loop
curpos := instr(str,',',lastpos,1);
if curpos <> 0 then
temparray(i) := trim(substr(str,lastpos,curpos - lastpos));
DBMS_OUTPUT.PUT_LINE('element is: '||temparray(i));
lastpos := curpos + 1;
else
temparray(i) := trim(substr(str,lastpos));
DBMS_OUTPUT.PUT_LINE('element is: '||temparray(i));
exit;
end if;
i := i + 1;
end loop;
end;
/