IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

besoin d'aide dans un tableau a 2 dimension


Sujet :

PostgreSQL

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 86
    Points : 78
    Points
    78
    Par défaut besoin d'aide dans un tableau a 2 dimension
    salut,

    mon problème c'est que j'ai une fonction que je lui passe deux tableau comme paramètre, et avec c'est deux tableau je doit créer une matrice. Mais le problème c'est que je ne sais pas comment donner a ma matrice les dimension nécessaire pour que je puisse l'utiliser.
    Il me donne a chaque fois une erreur d'indice en dehors de l'échelle.
    voila le code qui me donne le probleme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    --vec1 et vec2 sont deux tableau que je passe en parametre de la fonction
    for i IN REVERSE array_length(vec1, 1)..1 LOOP
    		RAISE NOTICE 'i is %', i;
    		for j IN REVERSE array_length(vec2, 1)..1 LOOP
    			RAISE NOTICE 'j is %', j;
    			matrice[i][j] := abs(vec1[i] - vec2[j]);
    		end loop;
    	end loop;
    et pour les raise notice je les utilise pour debuguer et le resultat qui me donne et celui la

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ma_fonction(
        array[1.0, 0.23, 0.7, 0.87],
        array[1.0, 0.23, 0.7]
    );
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    NOTICE:  i is 3
    NOTICE:  j is 4
    NOTICE:  j is 3
     
    ERREUR:  indice du tableau en dehors de l'échelle
     
    État SQL :2202E
    et merci d'avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Comment tu as déclaré ta variable matrice?

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 86
    Points : 78
    Points
    78
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    matrice double precision[][];
    comme ca

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    plpgsql n'est pas capable de redimensionner dynamiquement un tableau à dimensions multiples, et en plus c'est l'affectation qui lui donne ses dimensions réelles et non la déclaration.
    Donc il faudrait une instruction du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     matrice:='{{0,0,0}, {0,0,0}, {0,0,0}}';
    pour initialiser la matrice.
    Si les dimensions sont dynamiques, il faut générer dynamiquement cette chaine de caractères et l'affecter au tableau.

    Une autre idée plus pratique est d'y accéder en une seule dimension avec matrice[i*N+j]

    Pour des problèmes plus complexes avec les tableaux, le mieux est d'utiliser un autre langage comme pl/perl.

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 86
    Points : 78
    Points
    78
    Par défaut
    merci pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'aide pour un Tableau
    Par PatBateman dans le forum Struts 1
    Réponses: 3
    Dernier message: 08/02/2007, 15h57
  2. [langage] Besoin d'aide dans mon codage
    Par frees3x dans le forum Langage
    Réponses: 4
    Dernier message: 08/11/2006, 08h21
  3. besoin d'aide dans un prototype
    Par amigauss dans le forum C
    Réponses: 5
    Dernier message: 17/10/2006, 10h02
  4. besoin d'aide probleme taille tableau
    Par zhao dans le forum C++
    Réponses: 8
    Dernier message: 28/09/2006, 09h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo