【问题标题】:Error : function levenshtein() does not exist错误:函数 levenshtein() 不存在
【发布时间】:2017-02-17 10:01:55
【问题描述】:

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

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

我知道常见的解决方案,即创建我已经做过的“fuzzystrmatch”之类的扩展,奇怪的是 4 天前,当我首先创建了fuzzystrmatch 扩展时,相同的脚本运行顺利!

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

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

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    此 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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多