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 :

Type de variable pour un enregistrement [19c]


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2022
    Messages : 5
    Par défaut Type de variable pour un enregistrement
    Bonjour tout le monde,

    je débute sous Oracle et je suis en train de créer une procédure stockée. Et vous savez quel type de variable pour le résultat d'une requête de ce type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select a, b from ma_table
    En fait, je ne suis même pas sûr qu'on puisse...Ce serait une sorte de tableau qui englobe deux type différents (ou pas) je dirais mais bon...
    J'ai regardé sur le net et je suis tombé sur plusieurs ressources et je n'ai pas l'impression que ce soit possible
    Si vous avez la réponse je veux bien, merci

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 175
    Par défaut
    Bonjour,

    En pl/sql il faut que le résultat de la requête soit stockée quelque part. Ici oui tu pourrais utiliser une collection qui va contenir tes 2 éléments.
    Par exemple

    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
    declare
    type typ_rec is record(elt_a ma_table.a%type,
                                   elt_b ma_table.b%type
                                 );
     
    type typ_t is table of typ_rec;
    v_t typ_t;
     
    begin
      select a, b 
      bulk collect into v_t
      from ma_table;
     
    .....
    end;
    /

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2022
    Messages : 5
    Par défaut
    merci pour ta réponse Vanagreg

    j'ai réussi à créer une procédure avec ce que tu m'as dit sauf que j'ai mis en commentaire le mot clé sinon je ne pouvais pas exécuter la création de la procédure.
    Avec ce message
    PLS-00103: Symbole "DECLARE" rencontré à la place d'un des symboles suivants : begin function pragma procedure subtype type <identificateur> <identificateur entre guillemets> current cursor del
    du coup je l'ai mis en commentaire et là j'ai pu l'exécuter
    Bon par contre, je ne comprends pas trop l'erreur
    Enfin je vais y aller dans l'ordre et creuser de mon côté
    J'ai une autre question pour le coup...Une fois la variable affectée avec le résultat de ma requête comment tu fais pour la parcourir
    Si tu as un lien dessus avec de la doc je suis preneur (en français ou anglais)
    En tout cas pour ta première réponse !

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 175
    Par défaut
    Bonjour,

    Dans une procédure tu n'as pas besoin de DECLARE. La partie déclaration se trouve en début de procédure, avant le begin.
    Pour parcourir la collection, tu utilises une boucle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for i in 1..vt.count loop
     
      ma_var1 := v_t(i).elt_a;
      ma_var2 := v_t(i)/elt_b;
     
    ....
    end loop;

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2022
    Messages : 5
    Par défaut
    Vanagreg

    C'est !!

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

Discussions similaires

  1. Quel type de variable pour 20 bits?
    Par The_72 dans le forum MATLAB
    Réponses: 1
    Dernier message: 23/04/2010, 12h08
  2. Réponses: 2
    Dernier message: 22/12/2009, 22h29
  3. [TPW] Jeux de rôle : quels types de variables pour coder des personnages ?
    Par maxiNoob dans le forum Turbo Pascal
    Réponses: 81
    Dernier message: 07/12/2009, 11h54
  4. Quel type de variable pour enregistrer un temps ?
    Par trigone dans le forum Langage
    Réponses: 9
    Dernier message: 07/12/2008, 20h15
  5. Réponses: 2
    Dernier message: 05/02/2008, 11h47

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