特定のスキーマでいくつかの関数を作成しましたが、「関数」セクションには何もありません..
次の例のような関数を作成します。
CREATE FUNCTION pymax (a integer, b integer)
RETURNS integer
AS $$
if a > b:
return a
return b
$$ LANGUAGE plpythonu;
特定のスキーマでいくつかの関数を作成しましたが、「関数」セクションには何もありません..
次の例のような関数を作成します。
CREATE FUNCTION pymax (a integer, b integer)
RETURNS integer
AS $$
if a > b:
return a
return b
$$ LANGUAGE plpythonu;
名前がスキーマ修飾されていない場合、(他のオブジェクトと同様に) 関数が現在のスキーマに作成されます。現在のスキーマは、 の現在の設定によって定義されますsearch_path
。
現在の を確認するにはsearch_path
:
SHOW search_path;
を設定するには、いくつかの方法がありますsearch_path
。詳細については、この関連する回答
を参照してください。
同様の名前の関数がデータベースに存在するかどうかを調べるには、次のようにします。
SELECT n.nspname, p.proname, pg_get_function_arguments(p.oid) As args
FROM pg_proc p
JOIN pg_namespace n ON n.oid = p.pronamespace
WHERE p.proname ILIKE '%pymax%';
何も見つからない場合、関数はこのデータベースに存在しません。間違って別のデータベースに作成したのでしょうか?