Oracle中删除指定字符串的函数

有一个需求对字符串内容删除多个指定的关键字符
例如:
需删除字符串中包含分公司, 有限, 实业, 集团,公司,股份多个字符串

解决思路:

可以使用多个replace函数来把这里字符串替换成空,但是这样做不是很美观,所以我准备写一个函数来实现这个功能
创建函数:

create or replace function substr3(v_char varchar2) return varchar2 is
  v_result varchar2(200);
  v_com    varchar2(50);
  --设置数组
  type type_array is varray(50) of varchar2(50);
  v_name type_array;
begin
  --把输入值赋给结果值
  v_result := v_char;
  --定义需要截取的目标字符串
  v_name := type_array('分公司', '有限', '实业', '集团','公司','股份');
  --递归循环删除目标字符串
  for v_com in 1 .. v_name.count loop
    v_result := replace(v_result, v_name(v_com), '');
  end loop;
  --返回结果
  return v_result; 
end;

测试函数是否能够使用

select substr3('百度科技有限公司') from dual;

输入‘百度科技有限公司’出来的结果就是‘百度科技’

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值