错误:函数levenshtein()不存在

Sah*_*shi 2 postgresql

我在我的SQL脚本中使用levenshtein()函数.我正在使用Postgresql数据库和客户端来执行脚本.这是一个错误:

函数levenshtein(字符变化,字符变化)不存在.提示:没有函数匹配给定的名称和参数类型.您可能需要添加显式类型转换.

我知道它的常见解决方案,即创建我已经做过的'fuzzystrmatch'等扩展,奇怪的是4天前我创建fuzzystrmatch扩展时,同样的脚本顺利运行!

下面是我使用levenshtein()的代码行.

as $$select (1.0 - levenshtein($1, $2)::real/greatest(length($1), length($2)))::real;$$;
Run Code Online (Sandbox Code Playgroud)

Lau*_*lbe 6

此SQL命令告诉您当前安装扩展的位置:

SELECT n.nspname
FROM pg_extension e
   JOIN pg_namespace n
      ON e.extnamespace = n.oid
WHERE e.extname = 'fuzzystrmatch';
Run Code Online (Sandbox Code Playgroud)

如果不是你的search_path,你的查询将找不到该功能.

要在不同的模式中使用扩展,请在以下示例public中删除并重新创建它:

DROP EXTENSION fuzzystrmatch;
CREATE EXTENSION fuzzystrmatch SCHEMA public;
Run Code Online (Sandbox Code Playgroud)