plpgsql 関数で動的選択クエリを使用して配列を作成しようとしています。残念ながら、構文エラーが発生します。
ERROR: syntax error at or near "EXECUTE"
ZEILE 19: SELECT DISTINCT INTO outputIdsToDelete ARRAY( EXECUTE findA...
^
誰か助けてくれませんか?関数自体は次のとおりです。
関数の作成または置換 deleteMAPPINGs(
mapTable1_key テキスト、mapping_table テキスト、mapTable2_key テキスト、
table2 テキスト、table2_key テキスト、
inputIdsToDelete bigint[]) RETURNS bigint[] AS
$本文$
宣言する
outputIdsToDelete bigint[];
findAllQuery テキスト;
findUnreferencedQuery テキスト;
始める
findAllQuery := 'SELECT DISTINCT' || mapTable2_key ||
' から ' || マッピングテーブル ||
' どこ ' || mapTable1_key || ' = ANY(inputIdsToDelete)';
findUnreferencedQuery := 'SELECT DISTINCT' || table2_key || -- 未使用を見つける
' から ' || テーブル2 ||
' どこ ' || table2_key || ' ではありません (' ||
'SELECT DISTINCT' || mapTable2_key || -- すべて使用済み
' から ' || マッピングテーブル || ')';
SELECT DISTINCT INTO outputIdsToDelete ARRAY( EXECUTE findAllQuery );
マッピングテーブルのどこからでも削除
mapTable1_key = ANY(inputIdsToDelete) AND
mapTable2_key = ANY(outputIdsToDelete);
SELECT DISTINCT INTO outputIdsToDelete --未使用で上書き
ARRAY(EXECUTE findUnreferencedQuery);
RETURN outputIdsToDelete;
終わり;
$本文$
LANGUAGE plpgsql 揮発性
コスト 100;