瀚高数据库
在进行应用适配过程中会遇到用户使用oracle的SYS.UTL_MATCH.edit_distance_similarity自带函数,进行比较两个字符串的相似度,但在替换为瀚高数据库后,会产生函数不存在的问题。
瀚高数据库内核未兼容oracle的SYS.UTL_MATCH.edit_distance_similarity,暂未支持。所以需要通过瀚高数据库编写自定义函数的方式去实现oracle的SYS.UTL_MATCH.edit_distance_similarity的相同的效果,达到减少代码修改量的初衷。
1、首先在瀚高数据库中创建扩展:
create EXTENSION fuzzystrmatch;
2、在瀚高数据库中执行下述SQL:
create or replace function edit_distance_similarity(text,text) returns numeric as $$ declare reault NUMERIC; max_length numeric; begin if length($1) > length($2) then max_length = length($1); else max_length = length($2); end if; select round((1 - (levenshtein($1, $2) / max_length ::numeric)) * 100) into reault ; return reault; end; $$ LANGUAGE plpgsql
3、使用:
select edit_distance_similarity('瀚高数据库','国产瀚高数据库第一');
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69994931/viewspace-2936214/ ,如需转载,请注明出处,否则将追究法律责任。