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;

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

猜你喜欢

转载自blog.csdn.net/q291938895/article/details/109009976