我在我的SQL脚本中使用levenshtein()函数。我正在使用Postgresql数据库和客户端来执行脚本。这是一个错误:
函数levenshtein(字符变化,字符变化)不存在。 提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。
我知道它的常见解决方案,即创建我已经做过的'fuzzystrmatch'等扩展,奇怪的是4天前我创建fuzzystrmatch扩展时,同样的脚本顺利运行!
下面是我使用levenshtein()的代码行。
as $$select (1.0 - levenshtein($1, $2)::real/greatest(length($1), length($2)))::real;$$;
答案 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;