oracle split 分割字符串,Oracle字符串分割Split[通俗易懂]

oracle split 分割字符串,Oracle字符串分割Split[通俗易懂]Oracle字符串分割Split一、创建数组类型Sql代码CREATEORREPLACETYPET_RET_TABLEISTABLEOFVARCHAR2(512)二、创建字符串分割函数Sql代码CREATEORREPLACEFUNCTIONF_SPLIT_STRING(AS_STRVARCHAR2,AS_SPLITVARCHAR2)RETURNT_RET_TABL…

大家好,又见面了,我是你们的朋友全栈君。

Oracle字符串分割Split

一、创建数组类型

Sql代码

CREATE OR REPLACE TYPE T_RET_TABLE IS TABLE OF VARCHAR2(512)

二、创建字符串分割函数

Sql代码

CREATE OR REPLACE FUNCTION F_SPLIT_STRING(AS_STR   VARCHAR2,

AS_SPLIT VARCHAR2)

RETURN T_RET_TABLE IS

— Author  : Guomm

— Created : 2013/5/22 13:38:46

— Purpose : 字符串分割

— Params

— AS_STR : 要处理的字符串

— AS_SPLIT :字符串分割符

V_OUT     T_RET_TABLE;

V_TMP     VARCHAR2(4000);

V_ELEMENT VARCHAR2(4000);

BEGIN

V_TMP := AS_STR;

V_OUT := T_RET_TABLE();

–如果存在匹配的分割符

WHILE INSTR(V_TMP, AS_SPLIT) > 0 LOOP

V_ELEMENT := SUBSTR(V_TMP, 1, INSTR(V_TMP, AS_SPLIT) – 1);

V_TMP     := SUBSTR(V_TMP,

INSTR(V_TMP, AS_SPLIT) + LENGTH(AS_SPLIT),

LENGTH(V_TMP));

V_OUT.EXTEND(1);

V_OUT(V_OUT.COUNT) := V_ELEMENT;

END LOOP;

IF V_TMP IS NOT NULL THEN

V_OUT.EXTEND(1);

V_OUT(V_OUT.COUNT) := V_TMP;

END IF;

RETURN V_OUT;

END F_SPLIT_STRING;

OK,到此功能已经实现,

三、调用

Sql代码

SELECT * FROM TABLE(F_SPLIT_STRING(‘1,2,3,4,5,6′,’,’))

DECLARE

V_ARRAY T_RET_TABLE;

BEGIN

V_ARRAY := F_SPLIT_STRING(‘1,2,3,4,5,6′,’,’);

FOR I IN 1..V_ARRAY.COUNT LOOP

DBMS_OUTPUT.PUT_LINE(V_ARRAY(i));

END LOOP;

END;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135809.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ostaskdel函数_cursor函数

    ostaskdel函数_cursor函数OSTaskCreate()

    2022年9月5日
  • 基础案例:TodoMVC[通俗易懂]

    基础案例:TodoMVC[通俗易懂]起步下载模板:gitclonehttps://github.com/tastejs/todomvc-app-template.git–depth1初始化项目:ngnewtodom

    2022年7月2日
  • ODrive开发 #1 ODrive固件开发指南[通俗易懂]

    ODrive固件开发指南本指南适用于希望修改ODrive固件的开发人员。因此,它假定您了解诸如如何使用Git,什么是编译器之类的知识。如果这听起来很陌生,以下内容对您来说可能不适合。官方发行版在master分支上。但是,由于您是开发人员,因此建议您使用devel分支,因为它包含最新功能。该项目正在积极开发中,因此请确保检查更新日志以跟踪更新动态。文章目录ODrive固件开发指南需要的开…

    2022年4月18日
  • SpringBoot整合Quartz定时任务(持久化到数据库)

    背景最近在做项目,项目中有个需求:需要使用定时任务,这个定时任务需要即时生效。查看Quartz官网之后发现:Quartz提供两种基本作业存储类型:RAMJobStore:RAM也就是内存,默认情况下Quartz会将任务调度存在内存中,这种方式性能是最好的,因为内存的速度是最快的。不好的地方就是数据缺乏持久性,但程序崩溃或者重新发布的时候,所有运行信息都会丢失JDBC作业存储:存到数据库…

    2022年4月9日
  • Flutter Mac 安装全教程(Android / iOS)

    Flutter Mac 安装全教程(Android / iOS)本文来自于:https://flutter.io/docs/get-started/install/macos目录下载Flutter设置环境变量Flutter命令安装编辑IDE下载Flutterhttps://flutter.io/docs/development/tools/sdk/archive在这里获取Flutter的安装包,推荐使用stablechanne…

    2022年5月23日
  • web服务器状态码(服务端500错误码)

    对于第304页的错误,一直是SEO工作人员老生常谈的话题。初始网站管理员对304错误非常敏感。互联网上总是有与之相关的新闻,比如:大量的304状态码会在网站上被降级,但这是真的吗?一、304错误提示是什么意思?简单理解:网站304的错误状态代码是当客户端试图访问服务器互相的信息提示。如果第二次访问期间页面内容没有更改,服务器将返回304状态代码。严格来说,这不是一个错误。值得注意的是,通过网站的日…

    2022年4月15日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号