UTL_MATCH 包

为了在DM上兼容oracle的utl_match包,提供功能上与oracle基本一致的utl_match包。利用这个包提供计算两个字符串差异字符个数和相似度的函数。

29.1 相关方法

utl_match包所支持的2个函数,分别计算源字符串和目标字符串的差异字符个数和相似度。

  1. edit_distance

输出字符串s1转化为s2所需要被插入、删除或替换字符的个数。

语法如下:

FUNCTION edit_distance(

	s1 IN VARCHAR,

	s2 IN VARCHAR

)RETURN INTEGER;

参数详解

  • s1输入参数,VARCHAR数据。
  • s2输入参数,VARCHAR数据。
  1. edit_distance_similarity

输出两个字符串的相似度。通过字符串s1转化为s2所需要被插入、删除或替换字符的个数,计算出字符串s1和s2的相似度。返回1~100之间的整数,0代表完全不匹配,100代表完全匹配。

语法如下:

FUNCTION edit_distance_similarity (

	s1 IN VARCHAR,

	s2 IN VARCHAR

)RETURN INTEGER;

参数详解

  • s1输入参数,VARCHAR数据。
  • s2输入参数,VARCHAR数据。

29.2 举例说明

使用包内的过程和函数之前,如果还未创建过系统包。请先调用系统过程创建系统包。

SP_CREATE_SYSTEM_PACKAGES (1,'UTL_MATCH');

例utl_MATCH包的应用。

例1 EDIT_DISTANCE

SELECT UTL_MATCH.EDIT_DISTANCE('dameng','meng') FROM DUAL;

查询结果:

2

例2 EDIT_DISTANCE_SIMILARITY

SELECT UTL_MATCH.EDIT_DISTANCE_SIMILARITY('china','chin') FROM DUAL;

查询结果:

80
微信扫码
分享文档
扫一扫
联系客服