京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

GD_SPLIT_STRING字符串指定分隔符数据提取函数

2018-9-27 15:48| 发布者: zhaojun917| 查看: 498| 评论: 0|原作者: 梦想之都-俊月星空

摘要: CREATE OR REPLACE FUNCTION GD_SPLIT_STRING(--字符串分拆函数 i_SrcStr VARCHAR2, -- 包含参数的字符串 i_Sign VARCHAR2, -- 参数分隔符号,如'~','?' i_ParamIndex NUMBER -- 欲分离的参数序号) RETURN VARCHAR2A ...

CREATE OR REPLACE FUNCTION GD_SPLIT_STRING(
--字符串分拆函数
  i_SrcStr         VARCHAR2, -- 包含参数的字符串
  i_Sign           VARCHAR2, -- 参数分隔符号,如'~','?'
  i_ParamIndex     NUMBER    -- 欲分离的参数序号
)
  RETURN VARCHAR2
AS
  v_Len        integer;
  v_StartIndex integer;
  v_EndIndex   integer;

  o_ParamStr   VARCHAR2(4000);

BEGIN
  IF i_SrcStr IS NULL THEN
    return '';
  END IF;

  IF i_ParamIndex <= 0 THEN
    return '';
  END IF;

  -- 初始化输出参数
  o_ParamStr := '';

  -- 取得参数内容的起始下标
  IF i_ParamIndex = 1 THEN
    v_StartIndex := 0;
  ELSE
    v_StartIndex := INSTRB(i_SrcStr, i_Sign, 1, i_ParamIndex - 1);
    IF v_StartIndex = 0 THEN
      return '';
    END IF;
  END IF;

  -- 取得参数内容的结束下标
  v_EndIndex := INSTRB(i_SrcStr, i_Sign, 1, i_ParamIndex);
  IF v_EndIndex = 0 THEN
    v_EndIndex := LENGTHB(i_SrcStr) + 1;
  END IF;

  return SUBSTRB(i_SrcStr, v_StartIndex + 1, v_EndIndex - v_StartIndex - 1);

END GD_SPLIT_STRING;

关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-7-2 00:48 , Processed in 0.037495 second(s), 18 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

返回顶部