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

Oracle Discussion :

Utilisation de la table DUAL


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 33
    Points : 19
    Points
    19
    Par défaut Utilisation de la table DUAL
    Bonjour à tous,

    J'aimerais bien savoir la différence entre les deux requêtes suivantes:
    1er cas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    cursor c1 is select 1 from dual where exists (select 1 from aagfaktpos 
    p, artikel a where p.lfdartnr=a.lfdnr  and lfdfaktnr=nlfdfaktnr and 
    fremdversand = 1);
    et 2ième cas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cursor c1 is select 1 from aagfaktpos p, artikel a  where 
    p.lfdartnr=a.lfdnr  and lfdfaktnr=nlfdfaktnr and fremdversand=1);
    Je pense que pour le 1er cas mon curseur "c1" aura une colonne DUMMY à 1, mais dans le 2ième cas, je ne sais pas ce que mon curseur contiendra. Quelqu'un peut-il m'éclairer sur le résultat dans mon curseur "c1" dans les deux cas? L'utilisation de l'une ou l'autre de ces 2 requêtes revient-elle au même, aspect résultat? Merci.

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Points : 8 079
    Points
    8 079
    Par défaut
    Citation Envoyé par serme
    Je pense que pour le 1er cas mon curseur "c1" aura une colonne DUMMY à 1
    Non non, pas du tout.
    Quand vous faites "SELECT 1 FROM matable", vous allez ramener la constante 1 pour chaque ligne de la table. Vous ne faites pas appel aux colonnes de cette table.
    Pour DUAL, c'est pareil, sauf que DUAL ne contient qu'une ligne.

    La différence pour vos requêtes, c'est que la première ramènera 1 s'il existe au moins une ligne de données qui satisfait aux conditions. Qu'il y en ait une ou mille, vous ne ramènerez 1 qu'une fois.

    La seconde ramènera 1 pour chaque ligne de données qui satisfait aux conditions.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    Merci Pomalaix pour ta réponse. C'est un peu plus clair maintenant. J'ai posé la question car je veux me passer de la table DUAL dans une procedure sans pour autant changer le comportement de la procedure car je dois convertir du code PL/SQL en T-SQL et en T-SQL je n'ai pas l'equivalent de DUAL(à ma connaissance). Merci.

  4. #4
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Points : 1 294
    Points
    1 294
    Par défaut
    Citation Envoyé par serme
    T-SQL je n'ai pas l'equivalent de DUAL(à ma connaissance). Merci.
    en T-SQL je crois que tu fais "select machin" tout court sans mettre de "from"

    sinon tu peux peut-etre faire ta 2ieme requête en plaçant avant un "set rowcount 1" c'est l'équivalent du "rownum = 1" d'oracle.

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

Discussions similaires

  1. Comment utiliser la meme table pour plusieurs formulaires
    Par pacodelareunion dans le forum Access
    Réponses: 5
    Dernier message: 26/10/2005, 15h17
  2. utiliser un composant table
    Par kivoch dans le forum Bases de données
    Réponses: 4
    Dernier message: 17/10/2005, 17h41
  3. recherche utilisation d'une table
    Par xmanu dans le forum Access
    Réponses: 2
    Dernier message: 21/09/2005, 09h09
  4. [CSS] utilisation de display:table
    Par Ricou13 dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 28/06/2005, 13h56
  5. [Sybase] Utilisation indexes sur table Proxy
    Par MashiMaro dans le forum Sybase
    Réponses: 2
    Dernier message: 20/02/2004, 10h20

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