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 :

Comparer 2 NCLOB dans un where


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 5
    Par défaut Comparer 2 NCLOB dans un where
    Bonjour,

    Je ne parviens pas à faire un select avec un where qui contient 2 NCLOB.

    Exemple :

    select * from ma_table
    where colonne1 <> colonne2;

    avec colonne1 et colonne2 déclarées en NCLOB

    J'obtiens l'erreur :

    ORA-00932 : types de données incohérents ; attendu : - ; obtenu : NCLOB

    J'ai tenté de faire un substr sur les colonnes ... ce qui ne change rien : même message d'erreur.

    D'avance, merci de votre aide
    Cordialement,

  2. #2
    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
    Par défaut
    Pour comparer des LOBs il faut écrire votre propre fonction PL/SQL si c'est vraiment nécessaire.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 5
    Par défaut
    Ok, je vous remercie pour la réponse.
    (... même si ça ne m'arrange pas trop )
    Cdt,

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Vous pouvez faire la comparaison en PL/SQL ou en utilisant le package DBMS_LOB
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    Connected to Oracle9i Enterprise Edition Release 9.2.0.7.0 
    Connected as mni
     
    SQL> 
    SQL> Select 1
      2    from t_nclob
      3   where a <> b
      4  /
     
    Select 1
      from t_nclob
     where a <> b
     
    ORA-00932: types de données incohérents : - attendu ; CLOB obtenu
     
    SQL> 
    SQL> Select 1
      2  from t_nclob
      3  where dbms_lob.compare(a,b) <> 0
      4  /
     
             1
    ----------
             1
     
    SQL>

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 5
    Par défaut
    Impeccable, cela fonctionne très bien.
    MERCI

  6. #6
    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
    Par défaut
    En effet DBMS_LOB.COMPARE existe au moins depuis Oracle 8.1.7 pour les CLOBs et BLOBs

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

Discussions similaires

  1. [SQL 9i ] format de date dans un where
    Par booth dans le forum Oracle
    Réponses: 5
    Dernier message: 14/10/2005, 10h23
  2. Réponses: 9
    Dernier message: 05/07/2005, 08h37
  3. INNER JOIN ... ON ... ou jointure dans clause where
    Par schmur1 dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 28/06/2005, 09h16
  4. Plusieurs clauses OR dans le WHERE
    Par NeHuS dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/01/2005, 16h19
  5. 2 champs dans un where , possible en sql server ?
    Par voyageur dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 19/10/2004, 05h01

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