Vous n'êtes pas identifié(e).

#1 15/04/2014 14:54:37

Xav1er
Membre

utilisation d'un tableau à 2 dimentions en pgsql

J'essaie d'utiliser un tableau à 2 dimentions

montab  smallint [][];
...
	montab[0][0]:=3;
	raise notice 'montab 00: %', montab[0][0];	
	montab[1][3]:=4;

Pour le 0 0, c'est ok, ça affecte ...
Pour toute autre affectation, j'ai l'erreur :

ERREUR: indice du tableau en dehors de l'échelle
État SQL :2202E
Contexte : fonction PL/pgsql pnt.p_test3(character varying), ligne 25 à affectation

Comment utiliser un tableau à 2 dimentions ? Faut-il l'initialiser ?


Et si je crée une fonction où un des paramètres est smallint [][], pg me l'enregistre comme smallint [].
Est ce que c'est normal ?

Hors ligne

#2 18/04/2014 22:50:19

gleu
Administrateur

Re : utilisation d'un tableau à 2 dimentions en pgsql

Indiquez des dimensions au tableau ?


Guillaume.

Hors ligne

#3 23/04/2014 15:29:55

Xav1er
Membre

Re : utilisation d'un tableau à 2 dimentions en pgsql

CREATE OR REPLACE FUNCTION montest(test character varying)
  RETURNS void AS
$BODY$
DECLARE 

	montab smallint [3][4];
	
BEGIN
	montab[0][0]:=3;
	montab[0][1]:=4;
	montab[2][1]:=5;
	montab[2][2]:=6;
	raise notice 'Valeur : %', montab[2][1];

	return;
END ;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;



select montest('toto');



ERREUR: indice du tableau en dehors de l'échelle
État SQL :2202E

Hors ligne

Pied de page des forums