oracle怎么增加函数,Oracle中增加Split函数

本文介绍了如何在Oracle数据库中创建一个名为ty_str_split的自定义表类型,并实现一个FN_SPLIT函数,该函数用于将字符串按指定分隔符拆分成表类型。通过示例查询FN_SPLIT('1#2#3#,4','#'),展示了函数的使用方法。
摘要由CSDN通过智能技术生成

首先,我们增加一个表类型:

CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 (4000)

其实,我们增加相对应的Split函数,该 函数返回ty_str_split表类型

CREATE OR REPLACE 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;

IF I >= LEN THEN

EXIT;

END IF;

ELSE

STR := SUBSTR(P_STR, I, J - I);

I := J + LEN1;

STR_SPLIT.EXTEND;

STR_SPLIT(STR_SPLIT.COUNT) := STR;

END IF;

END LOOP;

RETURN STR_SPLIT;

END FN_SPLIT;

接下来我们测试

SELECT * FROM TABLE(FN_SPLIT('1#2#3#,4','#'))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值