Je voudrais créer un tableau 2D à l'intérieur d'une fonction et le remplir avec les valeurs de l'instruction select. J'essaie ce code et je me retrouve avec un tableau à une dimension. Qu'est-ce que je fais mal?
select array(select a from t a)
=====================================
"{"(1,stxt,varchar)","(2,sint,int)"}"
create or replace function __test(
) returns text
language "plpgsql" as
$$
declare
_dat varchar[][];
begin
_dat = (select array(select a from t a));
return array_dims(_dat);
end;
$$;
select __test();
===========
"[1:2]"
Je m'attendais à ce que la dernière commande renvoie [1: 2] [1: 3] pour deux lignes de trois colonnes.
Réponses:
1 pour la réponse № 1PostgreSQL ne supporte qu’un seul type de tableau - vous ne pouvez donc prendre que tableau de rangées / vous ne pouvez pas utiliser un tableau 2D comme vous le feriez. Il n’ya aucun moyen de le faire correctement maintenant.