PostgreSQL:带ANY($ 1)的PREPARED语句

|| 我想创建一个PREPARED STATEMENT,其中输入是一些其计数未知的整数。 我想做的是
PREPARE prep_select_data AS SELECT ARRAY[$1, id], $1, * FROM tbl_data WHERE id = ANY($1);
我收到的错误是:
ERROR:  op ANY/ALL (array) requires array on right side
LINE 1: ...ELECT ARRAY[$1, id], $1, * FROM tbl_data WHERE id = ANY($1);
                                                             ^
我无法解决问题。 请指教。 问候, 马扬克     
已邀请:
        如错误所示,您需要将
$1
指定为(整数的)数组:
-- DEALLOCATE prep_select_data;
PREPARE prep_select_data (int[]) AS 
SELECT
    $1 || ARRAY[id], $1, *
FROM
    tbl_data 
WHERE
    id = ANY($1);
我将
ARRAY[$1, id]
更改为
$1 || ARRAY[id]
,结果如下:
EXECUTE prep_select_data (\'{1, 2}\');
 ?column? | ?column? | id | value 
----------+----------+----+-------
 {1,2,1}  | {1,2}    |  1 | aaa
 {1,2,2}  | {1,2}    |  2 | bbb
这是因为(来自doc):   多维数组必须具有   每个维度的匹配范围。一种   不匹配会导致错误报告。     

要回复问题请先登录注册