2017-02-17 10 views
1

私のSQLスクリプトでlevenshtein()関数を使用しています。私はスクリプトを実行するためにPostgreSQLデータベースとクライアントを使用しています。私はすでにやったと奇妙なことは、私がfuzzystrmatch拡張を作成したときと同じスクリプトが4日前にスムーズに実行されたことは「fuzzystrmatch」のような拡張を作成つまり、私はそれに共通の解決策を知っているエラー:関数levenshtein()が存在しません

function levenshtein(character varying, character varying) does not exist. HINT : No function matches the given name and argument types. You might need to add explicit type casts.

:エラーを投げています最初の場所!

以下は、levenshtein()が使用されている私のコード行です。

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

答えて

2

この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; 
+0

これは、スーパーユーザで行われます。拡張機能を作成すると、 'extension fuzzystrmatch already exists'というエラーがスローされます –

+0

上記のクエリの正確なエラーメッセージを表示できますか?また、どのデータ型が$ 1と$ 2ですか? –

+0

エラー:function levenshtein(charcater varying、character varying)が存在しません。(私の質問で提供したコード行を指しています) ヒント:指定された名前と引数の型に一致する関数はありません。明示的な型キャストを追加する必要があるかもしれません。 $ 1と$ 2はvarchar型です –

関連する問題