Oracle自定义数据类型

复制代码
 1 CREATE OR REPLACE FUNCTION split(p_str       IN clob,
 2                                      p_delimiter IN VARCHAR2 default (',') --分隔符,默认逗号
 3                                      ) RETURN split_type IS
 4   j        INT := 0;
 5   i        INT := 1;
 6   len      INT := 0;
 7   len1     INT := 0;
 8   str      clob;
 9   my_split split_type := split_type();
10 BEGIN
11   len  := LENGTH(p_str);
12   len1 := LENGTH(p_delimiter);
13 
14   WHILE j < len LOOP
15     j := INSTR(p_str, p_delimiter, i);
16 
17     IF j = 0 THEN
18       j   := len;
19       str := SUBSTR(p_str, i);
20       my_split.EXTEND;
21       my_split(my_split.COUNT) := str;
22 
23       IF i >= len THEN
24         EXIT;
25       END IF;
26     ELSE
27       str := SUBSTR(p_str, i, j - i);
28       i   := j + len1;
29       my_split.EXTEND;
30       my_split(my_split.COUNT) := str;
31     END IF;
32   END LOOP;
33 
34   RETURN my_split;
35 END split;
复制代码

 自定义Oracle数据类型

1 CREATE OR REPLACE TYPE "SPLIT_TYPE" IS TABLE OF VARCHAR2 (4000);
2 CREATE OR REPLACE TYPE "TYPE_STR_SPLIT" IS TABLE OF VARCHAR2 (4000);
3 CREATE OR REPLACE TYPE "TY_ROW_STR_SPLIT" as object (strValue VARCHAR2 (4000));
4 CREATE OR REPLACE TYPE "TY_TBL_STR_SPLIT" IS TABLE OF ty_row_str_split;

 

posted @   陈彦斌  阅读(367)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
历史上的今天:
2019-03-31 Python 小试牛刀,Django详细解读,让你更快的掌握它!!!
点击右上角即可分享
微信分享提示