Oracle split

复制代码
CREATE OR REPLACE TYPE str_split IS TABLE OF VARCHAR2 (4000)

CREATE OR REPLACE FUNCTION splitstr(p_string    IN VARCHAR2,
                                    p_delimiter IN VARCHAR2)
  RETURN str_split
  PIPELINED AS
  v_length NUMBER := LENGTH(p_string);
  v_start  NUMBER := 1;
  v_index  NUMBER;
BEGIN
  WHILE (v_start <= v_length) LOOP
    v_index := INSTR(p_string, p_delimiter, v_start);
  
    IF v_index = 0 THEN
      PIPE ROW(SUBSTR(p_string, v_start));
      v_start := v_length + 1;
    ELSE
      PIPE ROW(SUBSTR(p_string, v_start, v_index - v_start));
      v_start := v_index + 1;
    END IF;
  END LOOP;

  RETURN;
END splitstr;
相关推荐
盛世宏博北京16 小时前
学校图书馆自动化恒温恒湿控制系统技术方案
网络·数据库·人工智能
Sammyyyyy16 小时前
MongoDB 的文档模型与 CRUD 实战
开发语言·数据库·mongodb·servbay
宁小法16 小时前
SQL查询对比: select exists($sql) 跟 select * from `users` where `id` = 60000001的区别差异
数据库·sql·select exists
语落心生16 小时前
Flink 到 Doris 数据同步----从二阶段提交到幂等性 StreamLoader 的演进之路
数据库
程序员阿鹏16 小时前
事务与 ACID 及失效场景
java·开发语言·数据库
CC.GG17 小时前
【Qt】常用控件----QWidget属性
java·数据库·qt
忍冬行者17 小时前
kubeadm安装的k8s集群涉及etcd数据库的参数优化
数据库·kubernetes·etcd
大猫和小黄17 小时前
若依微服务Cloud中Quartz-Job模块适配OpenGauss数据库
数据库·微服务·opengauss·quartz·定时任务·若依·job
奔跑的小十一18 小时前
ShardingSphere-JDBC 开发手册
java·数据库
lkbhua莱克瓦2418 小时前
基础-MySQL概述
java·开发语言·数据库·笔记·mysql