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 :

Utilisation du Row Value Constructor


Sujet :

SQL Oracle

  1. #1
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut Utilisation du Row Value Constructor
    Bonjour à tous !

    A chaque fois que j'essaie d'utiliser un Row Value Constructor sous Oracle, je me fais jeter lamentablement sous divers prétextes foireux, du genre "ORA-00920: invalid relational operator" ou "ORA-01796: this operator cannot be used with lists".

    Cette fois-ci, j'ai besoin d'en avoir vraiment le coeur net. J'ai donc torturé la doc Oracle jusqu'à ce qu'elle me crache les infos suivantes (http://download.oracle.com/docs/cd/A...s3.htm#1034735) :

    - la syntaxe pour comparer deux RVC serait la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (col1, col2) = ANY ((val1, val2))
    effectivement, la requête suivante fonctionne sur apex.oracle.com :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select *
    from demo_customers
    where (cust_first_name, cust_last_name) = any (('Eugene', 'Bradley'))
    - les seuls opérateurs autorisés seraient = et <> (ainsi que ses synonymes), ce qui limite largement l'intérêt de la chose...

    A l'inverse, MySQL et SQL Server offrent une implémentation plus simple (pas besoin de ANY ni des doubles parenthèses) et surtout plus riche (possibilité d'utiliser <, <=, etc.) du RVC. Je ne vous cache pas ma déception

    Je ne suis franchement pas un spécialiste Oracle. Quelle est votre expérience ? Est-ce que j'ai bien compris ? ou alors j'ai raté qqch ?
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    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 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Citation Envoyé par Antoun
    les seuls opérateurs autorisés seraient = et <> (ainsi que ses synonymes), ce qui limite largement l'intérêt de la chose...
    Oui, c'est exact, même en 10gR2, le schéma syntaxique indique que les comparaisons multicolonnes ne fonctionnent qu'avec l'égalité ou la différence.

    Quant au ANY et consorts, à titre personnel je ne les utilise jamais, un
    IN (<liste>)
    remplaçant fort bien, y compris lors de comparaisons multicolonnes, un
    = ANY(<liste>)
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  3. #3
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    Merci de la réponse ! plus je creuse Oracle et plus je suis déçu
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  4. #4
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Citation Envoyé par Antoun
    plus je creuse Oracle et plus je suis déçu
    Pour moi ce serait plutôt l'inverse... Voir par exemple le blog suivant (en français) qui compare la concurrence d'accès MySQL avec InnoDB (racheté par Oracle) et celle d'Oracle:
    http://arkzoyd.blogspot.com/2007/07/...-pour-dba.html

  5. #5
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    Normal, on ne recherche pas les mêmes choses. Si tu parles solidité et performance, c'est clair qu'Oracle est meilleur. Par contre, en termes de richesse et de normalisation du SQL...
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  6. #6
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Citation Envoyé par Antoun
    Normal, on ne recherche pas les mêmes choses. Si tu parles solidité et performance, c'est clair qu'Oracle est meilleur. Par contre, en termes de richesse et de normalisation du SQL...
    +1
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  7. #7
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Citation Envoyé par Antoun
    Normal, on ne recherche pas les mêmes choses. Si tu parles solidité et performance, c'est clair qu'Oracle est meilleur. Par contre, en termes de richesse et de normalisation du SQL...
    En ce qui concerne la normalisation du SQL et du langage de procédure stockée, je suis plutôt d'accord: MySQL est plus respectueux des standards SQL et langage de procédure stockée qu'Oracle. Mais pour la richesse du SQL et du langage de procédure stockée, je ne suis pas vraiment convaincu.

  8. #8
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    Je suis d'accord, le SQL procédural le + riche est sans conteste le PL/SQL. En même temps, cela me semble assez révélateur de la faiblesse du SQL statique d'Oracle. J'ai relativement peu d'expérience Oracle, et pourtant cela m'est déjà arrivé de devoir faire à travers du PL des trucs que j'aurais fait bcp + simplement avec MySQL ou SQL Server.
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/10/2010, 21h50
  2. ROW VALUE CONSTRUCTOR sur SELECT
    Par cobfly dans le forum SQL
    Réponses: 11
    Dernier message: 25/02/2010, 08h33
  3. ComboBox utilisant Names et Values
    Par gandf dans le forum C++Builder
    Réponses: 8
    Dernier message: 08/06/2009, 14h20
  4. [SBI BIRT] Erreur de transformation quand Birt utilise Allow Multiples values
    Par atee dans le forum SpagoBI
    Réponses: 1
    Dernier message: 23/04/2009, 17h09
  5. [ACCESS] utilisation de Top Value
    Par Arko76 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 30/03/2007, 19h33

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