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

Interfaces de programmation Oracle Discussion :

[PRO*C] Affecter résultat SQL à une structure


Sujet :

Interfaces de programmation Oracle

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 193
    Par défaut [PRO*C] Affecter résultat SQL à une structure
    Bonjour à tous,

    j'ai défini une structure de fichier en working du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    01  toto.
       05 wtoto pic x(5)
       05 wtata pic x
       05 wtiti pic 9(2)
       .....etc
    et je vais chercher dans une table Oracle avec un curseur ces infos que je voudrais mettre dans cette structure ci-dessus....
    Je pense que je peux faire simplement des move de zone à zone mais j'en ai une quarantaine... Existe-t-il une façon plus directe afin d'affecter mon résultat SQL dans ma structure en working please ??

    Merci

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Par défaut
    Pas sûr sous Oracle, mais j'essaierais un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FETCH NEXT CURSEUR INTO :toto

  3. #3
    Membre émérite Avatar de Peut-êtreUneRéponse
    Homme Profil pro
    IT Specialist - IBM Z
    Inscrit en
    Décembre 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : IT Specialist - IBM Z
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 548
    Par défaut
    Il suffit de récupérer tes SELECT dans la zone groupe (01 toto) de ta clause copy grâce à INTO:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    EXEC SQL
      SELECT * INTO :toto
      FROM TABLE1
      WHERE blabla
    END-EXEC
    Attention, l'ordre des select doit être celui de ta clause copy.

    .

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 193
    Par défaut
    mais ouais, j aurais pas osé faire ca (encore fallait y penser ) mais si ca marche ce sera parfait

    merci les gars

    je teste et j reviens .....

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Par défaut Bémol
    La clause
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * INTO :toto 
    ...
    peut fonctionner mais uniquement si une seule ligne est retournée par la requête. Dans le cas contraire, il faudra déclarer un curseur et procéder à la lecture des lignes par un FETCH séquentiel.
    Ce fetch pourrait placer les lignes lues dans les même zones "toto" ou dans une zone de travail "toto" occursée, avec un occurs = nombre de lignes à lire.

  6. #6
    Membre émérite Avatar de Peut-êtreUneRéponse
    Homme Profil pro
    IT Specialist - IBM Z
    Inscrit en
    Décembre 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : IT Specialist - IBM Z
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 548
    Par défaut
    Effectivement l'exemple que je citais est bien dans le cadre d'un fetch (DECLARE CURSOR, OPEN CURSOR, FETCH et CLOSE CURSOR) le MOVE se faisant après le FETCH.

    .

Discussions similaires

  1. Affecter résultat sql à un sous formulaire
    Par mouam dans le forum VBA Access
    Réponses: 1
    Dernier message: 06/02/2009, 17h46
  2. [DAO]Affecté résultat requête à une variable
    Par Lex O'Mil dans le forum VBA Access
    Réponses: 4
    Dernier message: 30/03/2007, 15h56
  3. Affecter résultat d'une fonction à une variable ?
    Par ctobini dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 07/09/2006, 14h45
  4. [XP pro] Suppression du résultat d'une recherche
    Par Higgins dans le forum Windows XP
    Réponses: 1
    Dernier message: 17/02/2006, 08h32
  5. Affecter résultat SQL d'une requête à une variable
    Par bozolozo dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 02/01/2005, 17h37

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