oracle存储过程怎么将变量扔进数组

CREATE OR REPLACE PROCEDURE "P_TEST_TEXT"
is
OLD_VAL varchar2(100) := '{(38400,23),(37900,),(38950,23),(38098,),(39148,)}',
NEW_VAL varchar2(100) := '{(38400,23),(37900,),(38950,23),(39148,),(38098,)}'
begin
①TYPE valarray IS TABLE OF varchar2(100) INDEX BY BINARY_INTEGER;
VAL1 varchar2(100):=substr(OLD_VAL,2,length(OLD_VAL)-2);
WHILE VAL1<>'' LOOP
BEGIN
VAL2=substr(VAL1,instr(VAL1,'('),instr(VAL1,')'));
VAL3=substr(VAL2,instr(VAL2,',')+1,instr(VAL1,')')-instr(VAL2,',')-1);
②valarray1 valarray;
③?
VAL1=substr(VAL1,length(VAL2)+2,length(VAL1)-length(VAL2)-1);
END;
END LOOP;

在①处定义了一个数组类型,在②处声明了一个数组,请问怎么在③处把VAL3这个字符串扔进数组里,像java的集合的add方法一样
最新回答
清悠野鹤

2024-11-29 09:24:52

先自定义集合类型变量类型,然后定义对应的变量,直接把集合类型穿给存储过程就可以了,不用在存储过程中搞,应用程序中搞好传过去就可以了,我都是这样搞的