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 :

Probleme like avec un blob


Sujet :

SQL Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Points : 79
    Points
    79
    Par défaut Probleme like avec un blob
    Bonjour
    (je ne suis pas très bon avec ORACLE)
    je suis avec oracle 10G ex et j'ai une erreur que je ne comprends pas avec une requette :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT COUNT(DISTINCT(Object.idObject)) 
    FROM Object JOIN ObjectBody ON Object.idObject = ObjectBody.idObject 
    WHERE  deleted=0  AND  body LIKE '%'   AND creationTime>1191794400 AND creationTime<1194476654  ;
    et j'ai en retour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    types de données incohérents ; attendu : NUMBER ; obtenu : BLOB
    ca vient du body LIKE '%' (body est un BLOB).

    ca marchait très bien avec ORACLE98.

    Est ce que qq un sait d'ou ca vient? et est ce que j'aurais le même probleme avec ORACLE 10G ( mais pas EX)?

    Merci a bientot

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    En effet, depuis la 9.2.0.6 la conversion implicite n'est plus implémentée. Ainsi tu dois utiliser DBMS_LOB.INSTR.

    devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND  DBMS_LOB.INSTR(body,'toto') > 0
    devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND  DBMS_LOB.INSTR(body,'toto') =1
    etc...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Points : 79
    Points
    79
    Par défaut
    Meci pour la réponse, je teste ca ce soir et je vous dis comment on s'en sort.

    merci a bientot

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Points : 79
    Points
    79
    Par défaut
    arf je lutte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT COUNT(DISTINCT(Object.idObject)) FROM Object JOIN ObjectBody ON Object.idObject = ObjectBody.idObject WHERE  ( deleted=0 )  
    AND (DBMS_LOB.INSTR(body, 'toto') = 0)  
    AND ( creationTime>1191794400 AND creationTime<1194476654) ;
    j'ai ca en retour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORA-01465: nombre hexadécimal non valide
    Juste un autre question :
    Est ce que ce qui marche sous ouracle 10G EX marche sous oracle 10G (tout court) ?

    merci a bientot

  5. #5
    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
    Est ce que ce qui marche sous ouracle 10G XE marche sous oracle 10G (tout court) ?
    Oui. C'est l'inverse qui peut être faux car XE n'a pas toutes les fonctionnalités de la version standard ou entreprise.

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    faudrait peut-être nous donner la description de la table

    pour info : http://ora-01465.ora-code.com/

  7. #7
    Membre actif Avatar de DAB.cz
    Inscrit en
    Octobre 2006
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 221
    Points : 249
    Points
    249
    Par défaut
    BLOB n'est pas CLOB:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    create table t (b blob, c clob);
    insert into t (b, c) values (utl_raw.cast_to_raw ('toto'), 'toto');
     
    select count (1)
      from t
      where dbms_lob.instr (c, 'to') > 0;
    -- ok, 1 ligne
    select count (1)
      from t
      where dbms_lob.instr (b, utl_raw.cast_to_raw ('to')) > 0;
    -- ok, 1 ligne
    mais!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select count (1)
      from t
      where dbms_lob.instr (b, 'to') > 0;
    ORA-01465: nombre hexadécimal non valide
    DAB

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Points : 79
    Points
    79
    Par défaut
    Merci pour vos réponses.
    ca marche super

    merci a tous bon week end

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

Discussions similaires

  1. Probleme avec Champs Blob
    Par Ammouri_Bob dans le forum Oracle
    Réponses: 2
    Dernier message: 18/05/2010, 15h51
  2. probleme like avec champ numérique
    Par popofpopof dans le forum Access
    Réponses: 3
    Dernier message: 10/12/2007, 22h58
  3. Probleme like '%00' avec interbase
    Par BOUBOU81 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 27/10/2004, 11h49
  4. utilisation de "LIKE" avec un type datetime dans r
    Par ericmart dans le forum Langage SQL
    Réponses: 8
    Dernier message: 06/11/2003, 14h58
  5. probleme GRAVE avec directx 9
    Par l'arbre en plastique dans le forum DirectX
    Réponses: 3
    Dernier message: 02/09/2003, 23h59

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