当前位置:首页>编程日记>正文

oracle根据_分割字符串,oracle分割字符串函数

create or replace function f_split        (        /*功能:分割字符串          实现:通过分割符对字符串进行分割          编写人: 20111205              */        var_source_string in varchar2,--要分割的字符串        var_separator     in varchar2,--分隔符        var_number        in number:=0   --输分割的第几个值,如果为0则表示全部输出        )    return TABLETYPE_VARCHAR2 is   v_source_string varchar2(2000);   v_separator_position integer;--分割符位置   v_source_length integer;--要分割的字符串的长度   v_separator_length integer;--分割符的长度   v_result TABLETYPE_VARCHAR2:=TABLETYPE_VARCHAR2();   v_subset varchar2(2000);   v_count integer:=0; begin     if trim(var_separator) is null then       raise_application_error(-20001,'必须输入分割符!');     end if;     v_source_string:=trim(var_source_string);     --判断分割符的位置     v_separator_position:=instr(v_source_string,var_separator);     --分隔符的长度     v_separator_length:=length(var_separator);     --源分割字符串的长度     v_source_length:=length(var_source_string);     --源字符串最后必须有分隔符     if substr(v_source_string,v_source_length-v_separator_length+1,v_separator_length)<>var_separator then       raise_application_error(-20002,''''||v_source_string||'''字符串最后必须有分隔符!');     end if;       while v_separator_position>0 loop       --截取分割后的字符串       v_subset:=substr(v_source_string,1,v_separator_position-1);       if trim(v_subset) is not null then         v_result.extend;--数组添加一个空下标         v_result(v_result.last):=v_subset;--为数组最后一位赋值       end if;       v_source_string:=substr(v_source_string,v_separator_position+v_separator_length);       v_separator_position:=instr(v_source_string,var_separator,1);       v_count:=v_count+1;       if var_number=v_count then         v_result.delete;         v_result.extend;--数组添加一个空下标         v_result(v_result.last):=v_subset;--为数组最后一位赋值         return(v_result);       end if;     end loop;     return(v_result); end f_split; /* 测试代码: declare    -- Local variables here   i integer;   results tabletype_varchar2; begin   -- Test statements here   results:=f_split('"AAB999":"123","AAB004":"123","AAB003":"123","AAE006":"",   "AAE048":"","AAE051":"","AAE049":"","AAE047":"","AAB007":"","AAB008":"","AAB009":"",   "AAB023":"","AAB013":"123","AAB014":"123","AAE159":"","AAE007":"","AAB030":"123",   "AAZ066":"123","AAE004":"","AAE005":"","AAZ198":"","AAB301":"","AAB078":"",   "AAE013":"","AAB022":"","AAB021":"","AAB065":"","AAB006":"5","AAA149":"2",   "AAB020":"143","AAB019":"91","AAE011":"经办人","AAA027":"统筹区编码",', ',',7);   for i in 1 .. results.count loop     dbms_output.put_line(results(i));   end loop; end; */ /


http://www.coolblog.cn/news/1fa5b08f38a87f68.html

相关文章:

  • asp多表查询并显示_SpringBoot系列(五):SpringBoot整合Mybatis实现多表关联查询
  • s7day2学习记录
  • 【求锤得锤的故事】Redis锁从面试连环炮聊到神仙打架。
  • 矿Spring入门Demo
  • 拼音怎么写_老师:不会写的字用圈代替,看到孩子试卷,网友:人才
  • Linux 实时流量监测(iptraf中文图解)
  • Win10 + Python + GPU版MXNet + VS2015 + RTools + R配置
  • 美颜
  • shell访问php文件夹,Shell获取某目录下所有文件夹的名称
  • 如何优雅的实现 Spring Boot 接口参数加密解密?
  • LeCun亲授的深度学习入门课:从飞行器的发明到卷积神经网络
  • Mac原生Terminal快速登录ssh
  • java受保护的数据与_Javascript类定义语法,私有成员、受保护成员、静态成员等介绍...
  • mysql commit 机制_1024MySQL事物提交机制
  • 支撑微博千亿调用的轻量级RPC框架:Motan
  • jquery 使用小技巧
  • 2019-9
  • 法拉利虚拟学院2010 服务器,法拉利虚拟学院2010
  • vscode pylint 错误_将实际未错误的py库添加到pylint白名单
  • 科学计算工具NumPy(3):ndarray的元素处理
  • 工程师在工作电脑存 64G 不雅文件,被公司开除后索赔 41 万,结果…
  • linux批量创建用户和密码
  • newinsets用法java_Java XYPlot.setInsets方法代碼示例
  • js常用阻止冒泡事件
  • 气泡图在开源监控工具中的应用效果
  • 各类型土地利用图例_划重点!国土空间总体规划——土地利用
  • php 启动服务器监听
  • dubbo简单示例
  • 【设计模式】 模式PK:策略模式VS状态模式
  • [iptables]Redhat 7.2下使用iptables实现NAT
  • Ubuntu13.10:[3]如何开启SSH SERVER服务
  • CSS小技巧——CSS滚动条美化
  • JS实现-页面数据无限加载
  • 阿里巴巴分布式服务框架 Dubbo
  • 最新DOS大全
  • Django View(视图系统)
  • 阿里大鱼.net core 发送短信
  • 程序员入错行怎么办?
  • 两张超级大表join优化
  • 第九天函数
  • Linux软件安装-----apache安装
  • HDU 5988 最小费用流
  • Sorenson Capital:值得投资的 5 种 AI 技术
  • 《看透springmvc源码分析与实践》读书笔记一
  • 正式开课!如何学习相机模型与标定?(单目+双目+鱼眼+深度相机)
  • Arm芯片的新革命在缓缓上演
  • nagios自写插件—check_file
  • python3 错误 Max retries exceeded with url 解决方法
  • 行为模式之Template Method模式
  • 通过Spark进行ALS离线和Stream实时推荐