2017-06-20 6 views
0

postgresqlのplpython関数の引数に任意の型を指定できるのはどうすればいいですか?私は次の関数を使用して(またはしようとしている)してい

CREATE FUNCTION replace_value(data JSON, key text, value anyelement) 
RETURNS JSON AS $$ 
    import json 
    d = json.loads(data) 
    d[key] = value 
    return json.dumps(d) 
$$ LANGUAGE plpython3u; 

この私が期待していなかったとして、動作しません。 Postgresは文句:変数は、物事のために名前だけであるため、ネイティブのPythonの関数は、どのようなタイプのものを受け入れることができるので

ERROR: PL/Python functions cannot accept type anyelement 

はまあ...それは、ただ愚かです。

この場合、値の実際のタイプが何であるか気にすることができませんでした。私はそれを置き換えたいだけです。 Postgres/PLPythonでどうすればいいですか?

答えて

0

パラメータをtextと定義し、関数を呼び出すときはtextにキャストします。

関連する問題