达梦数据库字符串切割-自定义函数

--根据分隔符返回分隔的组数

CREATE OR REPLACE
        FUNCTION get_StrArrayLength(STR VARCHAR(2000),SPLIT1 VARCHAR(10))
                RETURN INT
        AS
                V_LOCATION INT;
                V_START    INT;
                V_LENGTH   INT;
        BEGIN
                STR:=LTRIM(RTRIM(STR));
                V_LOCATION :=LOCATE(SPLIT1,STR);
                V_LENGTH  :=1;
                WHILE V_LOCATION <>0
                LOOP
                        V_START:=V_LOCATION+1;
                        V_LOCATION   :=LOCATE(SPLIT1,STR,V_START);
                        V_LENGTH  :=V_LENGTH+1;
                END LOOP;
                RETURN V_LENGTH;
        END;

--取出根据某个字符切割后的第n个字符串

CREATE OR REPLACE
        FUNCTION get_StrArrayStrOfIndex(STR VARCHAR(2000),SPLIT1 VARCHAR(10),
                INDEX1   INT)
                RETURN VARCHAR(2000)
        AS
                V_LOCATION INT;
                V_START    INT;
                V_NEXT     INT;
                V_SEED     INT;
        BEGIN
                STR:=LTRIM(RTRIM(STR));
                V_START    :=1;
                V_NEXT :=1;
                V_SEED :=LEN(SPLIT1);
                V_LOCATION :=LOCATE(SPLIT1,STR);
                WHILE V_LOCATION  <>0 AND INDEX1 >V_NEXT
                LOOP
                        V_START:=V_LOCATION+V_SEED;
                        V_LOCATION :=LOCATE(SPLIT1,STR,V_START);
                        V_NEXT :=V_NEXT+1;
                END LOOP;
                IF V_LOCATION=0 THEN
                        V_LOCATION :=LEN(STR)+1;
                END IF;
                RETURN SUBSTRING(STR,V_START,V_LOCATION-V_START);
        END;

--调用方法

SELECT get_StrArrayLength(‘8a,9c,4c,5K‘,‘,‘) FROM SYSDBA.SYSDUAL ;

SELECT get_StrArrayStrOfIndex(‘8a,9c,4c,5K‘,‘,‘,3) FROM SYSDBA.SYSDUAL;

时间: 2024-10-14 11:22:20

达梦数据库字符串切割-自定义函数的相关文章

国产达梦数据库的结合Enterprise Library的应用开发

在上篇<基于Enterprise Library的Winform开发框架实现支持国产达梦数据库的扩展操作>介绍了如何在Enterprise Library的数据访问层上支持这种神秘的国产数据库-达梦数据库.本文继续这一主题,介绍产达梦数据库的结合Enterprise Library的应用开发. 1.达梦数据库还原处理 达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM.达梦数据库管理系统的最新版本是7.0版本,简称DM7.DM7提供对SQL92的特性支持以及

[转帖]达梦数据库(DM6)和ORACLE 10g的异同点

达梦数据库(DM6)和ORACLE 10g的异同点    https://bbs.aliyun.com/detail/351337.html 花花浪子 级别: 小白 发帖 0 云币 -41 加关注 写私信 只看楼主 更多操作楼主  发表于: 2017-03-24 比较惭愧,在当上本版版主后一直没有贡献一篇有营养的帖子,由于手上正好有达梦数据 DM6的版本,加上对ORACLE 10G比较熟悉,所以就这2种数据库的异同点做一个对比,也请大家不吝赐教. 对于达梦数据库,因为目前的工作是DBA,主要是对

达梦数据库索引实践

达梦数据库索引实践 达梦数据库支持二级索引,聚集索引,唯一索引,函数索引,位图索引,分区索引等. 默认的表是索引组织表,利用rowid创建一个默认的索引,所以我们创建的索引,称为二级索引.建索引的目的是加快表的查询,对数据库做DML操作的时候,数据库会自动维护索引.索引是一棵倒置的树,使用索引,就是对这个索引树进行遍历. 建立索引的规则:经常查询的列.连接条件列.谓词经常出现的列(where).查询是返回表的一小部分数据 不适合创建索引的情况:列上有大量的null.列上的数据有限(例如:性别)

达梦数据库的过程包使用

达梦数据库的过程包使用 过程包即Package,它是存储过程的延伸,包的实现主要包括包头和包体,其中包头主要用于定义接口,包体主要用以实现包体中声明的存储过程.函数等.如果业务中需要用到大量的存储过程,则需要用过程包对存储过程进行进一步的包装,Package 分为Package声明以及Packge body,需要先声明存储过程,存储过程中相关的数据,在Package body中实现声明中的存储过程. 1.查看所有角色首先创建一张测试的表来测试create table tab_package_cs

基于Enterprise Library的Winform开发框架实现支持国产达梦数据库的扩展操作

由于一个客户朋友的需求,需要我的Winform开发框架支持国产达梦数据库的操作,这个数据库很早就听过,但是真正一般项目用的很少,一般在一些特殊的项目可能需要用到.由于我的Winform开发框架,是基于Enterprise Library的数据访问层的实现,因此增加一个数据库的支持很容易,本文介绍如何在框架层面上支持这种神秘的国产数据库-达梦数据库. 1.达梦数据库的简单介绍 达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM.达梦数据库管理系统的最新版本是7.

达梦数据库安装和创建表

1.达梦数据库安装 2.达梦命令行sql工具 进去达梦数据库安装目录下的/bin目录 运行./disql 输入用户名和密码: 默认的管理用户SYSDBA 的初始密码是SYSDBA 在sql> 工具里边执行sql操作

DB 查询分析器 6.03 如何灵活、快捷地操作国产达梦数据库

DB 查询分析器 6.03 如何灵活.快捷地操作国产达梦数据库 马根峰 (广东联合电子服务股份有限公司, 广州 510300) 摘要       本文详细地介绍了"万能数据库查询分析器",中文版本<DB 查询分析器>.英文版本<DB Query Analyzer>6.03如何灵活.快捷地操作国产达梦数据库.除了创建基于不同数据库产品的ODBC数据源有所不同外,用"万能数据库查询分析器"操作任何数据库.EXCEL.TXT/CSV文件的方法跟本文

达梦数据库(第二部分)

1.达梦数据库创建表 达梦数据安装完成之后,打开DM管理工具,可以进行数据库的相关操作.可以通过新建查询,在SQL命令窗口输入sql语句,创建表,sql输入完成之后,选择sql进行执行,则会在表空间MAIN下的表路径下产生新建的表文件,如下图: 2.建立主键 Create table时通过primary key创建主键 如:create table person(ID int primary key,name varchar(10),address varchar(60)) 或者通过alter语

达梦数据库(第一部分)

达梦数据库相关的操作 1. 安装步骤 1.1下载达梦安装包,下载完成之后解压,双击setup.exe,得到如下图所示,语言和时区默认为"简体中文"."中国标准时间",点击"确定": 1.2进入安装向导,点击"开始",如下图: 1.3进入许可证协议,选择"我接受",点击"下一步",如下图: 1.4进入组件版本信息界面,点击"下一步",如下图: 1.5进入上传key文件界