如何将参数传递给我的pl / python自定义函数

时间:2019-09-01 16:31:23

标签: postgresql plpython

我正在尝试创建我的第一个使用pl / python中的参数的自定义函数。在使用pl / python语言之前,我已经创建了触发器,但是这些函数没有参数。 我创建的函数的代码如下:

CREATE OR REPLACE FUNCTION test_pl_pyton_func(table_name TEXT, field_name TEXT) RETURNS TEXT AS
    $BODY$
    plan = plpy.prepare("SELECT DISTINCT $1 FROM $2", ['TEXT', 'TEXT'])
    result = plpy.execute(plan, [field_name, table_name])
    while i < result.nrows():
        print(result[i][field_name])
        i = i+1
    $BODY$
    LANGUAGE plpython3u;

现在,如果我跑步:

SELECT test_pl_pyton_func(table_name, field_name);

我收到以下错误:

spiexceptions.SyntaxError: syntax error at or near "$2"
    LINE 1: SELECT DISTINCT $1 FROM $2
                                    ^
        QUERY:  SELECT DISTINCT $1 FROM $2
        CONTEXT:  Traceback (most recent call last):
          PL/Python function "test_pl_pyton_func", line 2, in <module>
            plan = plpy.prepare("SELECT DISTINCT $1 FROM $2", ['TEXT', 'TEXT'])
        PL/Python function "test_pl_pyton_func"

我怎么了?

0 个答案:

没有答案