我试图在plpgsql函数中创建一个带有动态选择查询的数组.不幸的是我收到了语法错误.
ERROR: Syntax error at or near "EXECUTE" ZEILE 19: SELECT disTINCT INTO outputIdsToDelete ARRAY( EXECUTE findA... ^
有人可以帮帮我吗?
这是函数本身:
CREATE OR REPLACE FUNCTION deleteMAPPINGs( mapTable1_key text,mapping_table text,mapTable2_key text,table2 text,table2_key text,inputIdsToDelete bigint[]) RETURNS bigint[] AS $BODY$ DECLARE outputIdsToDelete bigint[]; findAllQuery text; findUnreferencedQuery text; BEGIN findAllQuery := 'SELECT disTINCT ' || mapTable2_key || ' FROM ' || mapping_table || ' WHERE ' || mapTable1_key || ' = ANY(inputIdsToDelete)'; findUnreferencedQuery := 'SELECT disTINCT ' || table2_key || --find unused ' FROM ' || table2 || ' WHERE ' || table2_key || ' NOT IN (' || 'SELECT disTINCT ' || mapTable2_key || --all used ' FROM ' || mapping_table || ')'; SELECT disTINCT INTO outputIdsToDelete ARRAY( EXECUTE findAllQuery ); DELETE FROM mapping_table WHERE mapTable1_key = ANY(inputIdsToDelete) AND mapTable2_key = ANY(outputIdsToDelete); SELECT disTINCT INTO outputIdsToDelete --overwrite with unused ARRAY(EXECUTE findUnreferencedQuery); RETURN outputIdsToDelete; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100;
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。