求助:关于ORACLE函数问题

COOPER 2011-05-27 01:20:52
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就相当于数组下标吧?
...全文
41 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
304的的哥 2011-05-27
  • 打赏
  • 举报
回复

TYPE ty_str_split IS TABLE OF VARCHAR2(400);
--定义了一个嵌套表类型,表的元素个数不限制,但是每个元素最大长度400字节
--具体请找本书参考参考,一两句话,一两个例子解释不清楚,得理解
tangren 2011-05-27
  • 打赏
  • 举报
回复
类似于其它高级语言的数组,其实有三种:索引表、嵌套表、可变数组。
要详细了解,可以看一下这本书:精通Oracle 10g PL/SQL编程(http://download.csdn.net/source/552111)
vber1010 2011-05-27
  • 打赏
  • 举报
回复
看来这个函数用的挺广泛啊。。。
你说的都对。
oracle没有数组类型,一般用这种自定义的类型来代替数组了。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧