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

SQL Oracle Discussion :

Type Cursor général


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 258
    Par défaut Type Cursor général
    Bonjour,

    Dans une procédure PL/SQL, je dois faire quatre requêtes différentes mais qui portent sur les mêmes tables (ce sont juste les conditions de jointure qui diffèrent). A partir du résultat de ces requêtes, j'écris un fichier texte d'extraction de données. (ce sont naturellement toujours les mêmes champs qui sont écrits dans le fichier texte)
    Pour l'instant, j'ai défini quatre curseurs différents selon les requêtes (Cursor1, Cursor2, Cursor3 et Cursor4) et quatre types de variable différentes pour recueillir les données de mes requêtes (type Cursor1%ROWTYPE, ... etc)
    Mais cette manip me conduit à écrire 4 fois le même code pour écrire mon fichier texte.
    Aussi, je voudrais savoir q'il n'y a pas moyen d'avoir un curseur générique à passer à une fonction pour éviter d'avoir à ré-écrire ce code 4 fois.

    D'avance merci à ceux qui prendront le temps de me répondre

    Kim

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    peut-être avec les types génériques : http://laurent-dardenne.developpez.c...racle-anydata/

  3. #3
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    Je pencherai à vue de nez plutôt pour les REF_CURSOR...

    mais qu'est-ce qui change ?
    la clause SELECT ? la FROM ? la WHERE ?

    avez-vous un exemple "light" à nous fournir ?

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    j'avais mal lu :
    "ce sont juste les conditions de jointure qui diffèrent"

    en effet, une vue avec la partie commune aux 4 curseurs simplifierait le code mais par contre, y'a pas le choix : 4 requêtes différentes -> 4 curseurs

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 258
    Par défaut Curseur génériques
    A priori, et après essais, le type REF_CURSOR répond à mes besoins.

    Merci à tous ceux qui m'ont répondu.

    Kim

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/03/2012, 18h13
  2. Procédure PL/SQL avec paramètre in/out de type CURSOR
    Par tonio45312 dans le forum PL/SQL
    Réponses: 2
    Dernier message: 09/07/2009, 15h36
  3. Réponses: 1
    Dernier message: 09/11/2006, 12h39
  4. BULK COLLECT ==> TYPE TABLE OF (Cursor Rowtype)
    Par argoet dans le forum Oracle
    Réponses: 5
    Dernier message: 17/05/2005, 16h47
  5. [CSS] Le type hand pour cursor dans une balise AREA
    Par Invité dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 13/04/2005, 13h33

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