WHERE Colonne = ANY (tableau)
Bonjour,
dans la base de données,
- j'ai une table ma_table possédant une colonne de nom id de type INTEGER
- j'ai une fonction qui reçoit en entrée un tableau d'entiers
Comment est-il possible de récupérer les lignes de ma_table pour lesquelles la valeur de la colonne id est une des valeurs passées dans le tableau en paramètre pour faire un export en csv par exemple?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| CREATE OR REPLACE FUNCTION ma_fonction( tab_id INT[])
RETURNS INTEGER AS
$BODY$
-- essai de contenu n°1 qui fonctionne: les lignes pour lesquelles id vaut 1, 32, ou 33 sont exportées
EXECUTE 'COPY (
SELECT
id, col2
FROM
ma_table WHERE id = ANY(ARRAY[1,32,33]))
... etc
-- essai de contenu n°2 qui ne fonctionne pas: ERREUR "la colonne tab_id n'existe pas"
EXECUTE 'COPY (
SELECT
id, col2
FROM
ma_table WHERE id = ANY(tab_id))
... etc |
avec un appel ma_fonction(ARRAY[1,32,33])
Or c'est bien la deuxième forme qui m'intéresse ...
Merci d'avance pour votre aide