TYPE ty_str_split IS TABLE OF VARCHAR2(400); FUNCTION fn_split(p_str IN VARCHAR2, p_delimiter IN VARCHAR2) RETURN ty_str_split IS
j INT := 0;
i INT := 1;
len INT := 0;
len1 INT := 0;
str VARCHAR2(4000);
str_split ty_str_split := ty_str_split();
BEGIN
len := LENGTH(p_str);
len1 := LENGTH(p_delimiter); WHILE j < len LOOP
j := INSTR(p_str, p_delimiter, i); IF j = 0 THEN
j := len;
str := SUBSTR(p_str, i);
str_split.EXTEND;
str_split(str_split.COUNT) := str;1.红色的这种写法,是实例化吗?
2.type这种定义类型,相当于定义一个数组吧?
3.蓝色字体的str_split.COUNT,<==count就相当于数组下标吧?
j INT := 0;
i INT := 1;
len INT := 0;
len1 INT := 0;
str VARCHAR2(4000);
str_split ty_str_split := ty_str_split();
BEGIN
len := LENGTH(p_str);
len1 := LENGTH(p_delimiter); WHILE j < len LOOP
j := INSTR(p_str, p_delimiter, i); IF j = 0 THEN
j := len;
str := SUBSTR(p_str, i);
str_split.EXTEND;
str_split(str_split.COUNT) := str;1.红色的这种写法,是实例化吗?
2.type这种定义类型,相当于定义一个数组吧?
3.蓝色字体的str_split.COUNT,<==count就相当于数组下标吧?
你说的都对。
oracle没有数组类型,一般用这种自定义的类型来代替数组了。
要详细了解,可以看一下这本书:精通Oracle 10g PL/SQL编程(http://download.csdn.net/source/552111)
TYPE ty_str_split IS TABLE OF VARCHAR2(400);
--定义了一个嵌套表类型,表的元素个数不限制,但是每个元素最大长度400字节
--具体请找本书参考参考,一两句话,一两个例子解释不清楚,得理解