【无标题】

本文介绍了如何在Oracle数据库中使用CREATEORREPLACEFUNCTIONsplit_string_pipelined,该函数以VARCHAR2类型的字符串和指定分隔符作为输入,通过管道式处理返回切割后的行形式结果。
摘要由CSDN通过智能技术生成

oracle以指定符号切割字符串并以行的形式返回切割结果

CREATE OR REPLACE TYPE string_table_type IS TABLE OF VARCHAR2(4000);

CREATE OR REPLACE FUNCTION split_string_pipelined (
  p_string    VARCHAR2,
  p_delimiter VARCHAR2
)
RETURN string_table_type PIPELINED
IS
  v_start      PLS_INTEGER := 1;
  v_end        PLS_INTEGER;
  v_substring  VARCHAR2(4000);
BEGIN
  LOOP
    v_end := INSTR(p_string, p_delimiter, v_start);

    IF v_end = 0 THEN
      v_substring := SUBSTR(p_string, v_start);
      PIPE ROW(v_substring);
      EXIT;
    ELSE
      v_substring := SUBSTR(p_string, v_start, v_end - v_start);
      PIPE ROW(v_substring);
      v_start := v_end + LENGTH(p_delimiter);
    END IF;
    
    -- Exit the loop if the last substring has been piped and the end of the string has been reached
    EXIT WHEN v_start > LENGTH(p_string);
  END LOOP;
  RETURN;
END split_string_pipelined;
/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值