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

PL/SQL Oracle Discussion :

Récupérer la valeur du champ i+1 d'un tableau


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 44
    Par défaut Récupérer la valeur du champ i+1 d'un tableau
    Bonjour,
    Comment pourrais je récupérer la valeur du champ t(i+1) d'un tableau en PL/SQL?
    merci

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 135
    Par défaut
    La question ne me semble pas très claire.

    Pourrais-tu détailler un peu plus, avec un exemple et un pseudo-code ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 44
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    La question ne me semble pas très claire.

    Pourrais-tu détailler un peu plus, avec un exemple et un pseudo-code ?
    J'ai une table b comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    a1
    a2
    a3
    a4
    a5
    ...
    a65
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    Declare
      Cursor cur is
        select lign from b;
       TYPE Las IS TABLE OF CHAR(6) index by binary_integer;
       Tb Las ;
       i integer:=0;
       j integer:=8;
     
    begin
     
         For n IN cur Loop
          i:=i+1;
                Tb(i):=n.lign;
     
            if i=j then
     
               dbms_output.put_line(trim(Tb(i)||Tb(i+1))) ;
     
                j:=i+7;
     
          else
                   dbms_output.put_line( Tb(i) ) ;
     
          end if;
         End loop ;
     
     
    end;
    /

  4. #4
    Membre expérimenté Avatar de dariyoosh
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 236
    Par défaut
    @ SINASOFT

    Ce n'est toujours pas clair. Déjà, pourquoi remplir les cellules de la table associative une par une alors que l'on peut faire de manière plus efficace avec SELECT ... BULK COLLECT INTO ...?

    Un example
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <<bk>>
    DECLARE
        TYPE empname_tab_ty IS TABLE OF hr.employees.first_name%TYPE INDEX BY BINARY_INTEGER;
        empNamesTab empname_tab_ty;
    BEGIN
        SELECT t1.first_name BULK COLLECT INTO bk.empNamesTab
        FROM   hr.employees t1;
        FOR idx IN bk.empNamesTab.FIRST .. bk.empNamesTab.LAST LOOP
            sys.dbms_output.put_line('first_name = ' || bk.empNamesTab(idx));
        END LOOP;
    END;
    /
    En outre, je ne comprends pas du tout l'intérêt de cette partie dans votre code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    . . .
    IF i=j then
       dbms_output.put_line(trim(Tb(i)||Tb(i+1))) ;
        j:=i+7;
    else
        dbms_output.put_line( Tb(i) ) ;
    end IF;
    . . .
    Qu'est-ce qu'on cherche à faire dans le bloc ci-dessus par rapport à la question originale qui figure dans l'intitulé du poste?

    Il faudrait donc détailler un peu plus le problème.

  5. #5
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 44
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    . . .
    IF i=j then
       dbms_output.put_line(trim(Tb(i)||Tb(i+1))) ;
        j:=i+7;
    else
        dbms_output.put_line( Tb(i) ) ;
    end IF;
    . . .
    Ce code me permet de faire un test sur l'indice du tableau et me renvoyer à la sortie:
    la valeur du contenu du tableau si non la boucle continuera a me renvoyer la valeur

  6. #6
    Membre expérimenté Avatar de dariyoosh
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 236
    Par défaut
    Oui, d'un point de vue de syntax PL/SQL je comprends qu'est-ce qu'on fait à l'intérieur de cette boucle, mais ce n'est pas ça la question.

    Quel est le rapport de ce code avec la question originale: "Récupérer la valeur du champ i+1 d'un tableau" qui est le titre de ce topic? Qu'est-ce qu'on cherche à obtenir?

Discussions similaires

  1. [Mysql] Récupérer la valeur du champ autoincrement
    Par Hell dans le forum Requêtes
    Réponses: 4
    Dernier message: 25/10/2006, 11h33
  2. [MySQL] Je veux récupérer la valeur des champs de ma base et je n'ai qu'1 seul caractère
    Par yiuche dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 03/08/2006, 17h05
  3. Récupérer la valeur des champs calculés dans une requète SQL dans vba
    Par FrédéricCM dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 28/06/2006, 16h29
  4. Récupérer les valeurs des champs créés dynamiquement
    Par outlawz dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/05/2006, 16h32
  5. récupérer la valeur d´un champ d´une popup
    Par naiadeKaren dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/08/2005, 16h04

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