我正在尝试创建我的第一个使用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"
我怎么了?