错误:函数levenshtein()不存在

时间:2017-02-17 10:01:56

标签: postgresql

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

  

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

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

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

as $$select (1.0 - levenshtein($1, $2)::real/greatest(length($1), length($2)))::real;$$;

1 个答案:

答案 0 :(得分:5)

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

SELECT n.nspname
FROM pg_extension e
   JOIN pg_namespace n
      ON e.extnamespace = n.oid
WHERE e.extname = 'fuzzystrmatch';

如果不在search_path上,则您的查询将无法找到该功能。

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

DROP EXTENSION fuzzystrmatch;
CREATE EXTENSION fuzzystrmatch SCHEMA public;