有一个需求对字符串内容删除多个指定的关键字符
例如:
需删除字符串中包含分公司, 有限, 实业, 集团,公司,股份多个字符串
解决思路:
可以使用多个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;
输入‘百度科技有限公司’出来的结果就是‘百度科技’