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 :

Plusieurs SELECT dans un curseur.


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 203
    Billets dans le blog
    1
    Par défaut Plusieurs SELECT dans un curseur.
    Je voudrais savoir si on pourrait faire plusieurs SELECT dans un curseur.

    Voici mon exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Cursor xxyy is
      SELECT (SELECT SYSDATE FROM DUAL) dt,
                 (SELECT SYSDATE-1 FROM DUAL)  dt1
      FROM DUAL;
    Si je roule ce select dans PL/SQL Developer, ça marche très bien.
    Est-ce qu'il y a des limites pour l'utilisation des curseurs avec plusieurs SELECT ?

    J'ai oublié : Oracle 10g.

    Merci d'avance !

  2. #2
    Membre Expert Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Par défaut
    Bonjour,

    La requête que vous donnezen exemple n'a pas besoin de plusieur SELECT dans la projection. Elle peut être facilement réécrite ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select sysdate dt, sysdate-1 dt1 from dual;
    D'autre part positionner une requête dans la projection implique que cette requête sera exécutée pour chaque ligne projetée ce qui du point de vue performances est généralement désastreux.

    La question est quel est votre besoin en termes fonctionnels (et non techniques) ?

    Le nombre maximal de colonnes projetées doit être de 255 (mais je n'ai pas retrouvé la référence) à priori rien n'empêche que chacune de ces colonnes soit une requête mais honnêtement si un jour un développeur me pond un truc comme ça je le crucifie en place publique ...

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par ojo77 Voir le message
    mais honnêtement si un jour un développeur me pond un truc comme ça je le crucifie en place publique...
    Juste pour nuancer vos propos, il me semble que c'est une vieille technique d'optimisation, lorsque une application doit remplir plusieurs données de son écran afin de limiter les allers-retours avec la base de données.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 203
    Billets dans le blog
    1
    Par défaut
    Merci pour vos réponses. Je pense que vous n'avez pas compris mon besoin réel. J'utiliserai Forms 10g pour manipuler le code PLSQL et je voudrais utiliser un curseur qui est basé sur plusieurs SELECT, c'est à dire, des colonnes proviennent des SELECT.

    On ne peut pas faire ça dans Forms, mais plutôt dans une procédure ou une fonction dans un package, ce que j'ai fait et ça marche très bien maintenant.

    Merci encore.

  5. #5
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    C'est en effet une limitation du moteur plsql de Forms qui n'est pas à jour.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 203
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par McM Voir le message
    C'est en effet une limitation du moteur plsql de Forms qui n'est pas à jour.
    Oui tout à fait. Malheureusement Forms 10g est limité point de vue PLSQL. J'espère avec la nouvelle version 11g qui réglerait ce problème ou bien carémment switcher vers APEX 4.0.

    Merci d'avance.

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

Discussions similaires

  1. Plusieurs select dans un INSERT
    Par micom59 dans le forum Langage SQL
    Réponses: 15
    Dernier message: 28/07/2010, 14h47
  2. Pb SELECT dans un CURSEUR
    Par tonio45312 dans le forum PL/SQL
    Réponses: 7
    Dernier message: 04/06/2009, 17h20
  3. Plusieurs select dans un script perl
    Par Nympheasi dans le forum SGBD
    Réponses: 4
    Dernier message: 22/05/2009, 17h08
  4. Réponses: 7
    Dernier message: 20/08/2007, 16h40
  5. Plusieurs SELECT dans l'ouverture d'une connection
    Par pmboutteau dans le forum ASP
    Réponses: 6
    Dernier message: 01/04/2005, 11h09

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