Postgresql 错误:函数levenshtein()不存在

Postgresql 错误:函数levenshtein()不存在,postgresql,Postgresql,我正在SQL脚本中使用levenshtein()函数。我正在使用Postgresql数据库和客户端来执行脚本。它抛出了一个错误: 函数levenshtein(字符变化,字符变化)不存在。 提示:没有与给定名称和参数类型匹配的函数。您可能需要添加显式类型转换 我知道它的常见解决方案,即创建像“fuzzystormach”这样的扩展,我已经这样做了。奇怪的是,4天前我创建fuzzystormach扩展时,同一个脚本运行得很顺利 下面是我使用levenshtein()的代码行 此SQL命令告诉您扩展当

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

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

我知道它的常见解决方案,即创建像“fuzzystormach”这样的扩展,我已经这样做了。奇怪的是,4天前我创建fuzzystormach扩展时,同一个脚本运行得很顺利

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


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

SELECT n.nspname
FROM pg_extension e
   JOIN pg_namespace n
      ON e.extnamespace = n.oid
WHERE e.extname = 'fuzzystrmatch';
如果该函数不在
搜索路径上
,则您的查询将找不到该函数

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

DROP EXTENSION fuzzystrmatch;
CREATE EXTENSION fuzzystrmatch SCHEMA public;

这是由超级用户完成的。当我创建扩展时,它抛出一个错误,说“extension fuzzystrmatch已经存在”,您能为上面的查询显示准确的错误消息吗?另外,什么数据类型是$1和$2?错误:函数levenshtein(charcate variabling,character variabling)不存在(指向我在问题中提供的代码行)提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换$1和$2为varchar类型检查安装扩展的架构:
从pg_扩展中选择n.nspname e在e.extnamespace=n.oid上加入pg_名称空间n,其中e.extname='fuzzystrmatch'将其与
搜索路径的当前值进行比较:可能该函数不在您的搜索路径上。是的,您是对的。它安装在我目前不使用的架构中。能否提供一种在特定架构中安装的方法?有什么特别的命令吗?
DROP EXTENSION fuzzystrmatch;
CREATE EXTENSION fuzzystrmatch SCHEMA public;