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 :

Erreur ORA-00932 types de données incohérents


Sujet :

Oracle

  1. #1
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut Erreur ORA-00932 types de données incohérents
    Salut tout le monde

    J'ai essayé d'executer la requête suivante sous Oracle 10 XE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT T.*, P.STOCKAGE_PHOTO
                     FROM PERSONNES P INNER JOIN
                     (SELECT MAX(CS.DATE_ATTRIBUTION) AS Expr1, SP.NUMSERIE, PS.NOM, PS.PRENOM, PS.Dte_Naissance, PR.ID_PORTEUR, PR.ID_CARTE, PS.PHOTO, PR.ID_PERSONNE , CS.STATUT, CS.DATE_ATTRIBUTION, CS.DATE_OPPOSITION, CS.DATE_DELIVRANCE
                     FROM PORTEUR PR INNER JOIN PERSONNES PS ON PR.ID_PERSONNE = PS.ID_PERSONNE INNER JOIN
                     SUPPORTE SP ON PR.ID_CARTE = SP.ID_CARTE INNER JOIN
                     CARTES CS ON PR.ID_CARTE = CS.ID_CARTE AND SP.ID_CARTE = CS.ID_CARTE
                     WHERE PS.NOM = 'MOREAU' AND PS.PRENOM='Paule' AND STATUT in ('ACTIF','RESERVE')
                     GROUP BY PR.ID_PERSONNE, SP.NUMSERIE, PS.NOM, PS.PRENOM, PS.Dte_Naissance, PR.ID_PORTEUR, PR.ID_CARTE, PS.PHOTO, CS.STATUT, CS.DATE_ATTRIBUTION, CS.DATE_OPPOSITION, CS.DATE_DELIVRANCE) T ON
                    P.ID_PERSONNE = T.ID_PERSONNE

    Alors j'ai recu l'erreur suivante :

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

    Lorsque j'ai enlevé le champs P.STOCKAGE_PHOTO de la sélection, la requête a bien marché. Mais j'ai besoin d'afficher ce champs. Ce champs sert a stoker des images, il est du type BLOB.

    Avez-vous une idée pour que ca marche? Merci a vous.

  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
    Points : 3 597
    Points
    3 597
    Par défaut
    Quel est le langage ou l'outil utilisé pour exécuter la requête ?

    En général, les outils de type SQL*Plus ou TOAD ne savent pas directement afficher des images. Dans un langage de programmation, il faut utiliser le bon service de l'API correspondante avec les bonnes déclarations de variables qu'on doit trouver dans le Oracle® Database Application Developer's Guide - Large Objects.

  3. #3
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut
    Merci pour ta réponse Pifor. J'execute cette requête dans un projet ASP.NET ecrit avec VB.Net.

    J'ai testé également cette requête sous l'outil Oracle XE.

  4. #4
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut
    Pourriez-vous me dire comment je peux afficher l'image ? je suis vraiment coincé là.

  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

  6. #6
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut
    merci encore une fois Pifor pour ta réponse. Veux-tu me dire quelle fonction utilisée, je suis nul en anglais

  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
    Désolé, je n'ai jamais travaillé avec .Net. Mais si on travaille avec Oracle en développement ou en administration, il me semble indispensable de maîtriser un minimum d'anglais technique car Oracle ne traduit en général aucun document officiel (pour Oracle 9, il y a environ 40 000 pages de documents ...). Et le site oracle.developpez.com est un des très rare sites où on peut trouver de la documentation en français.

    Ceci dit, si vous avez un contrat de support Oracle, vous pouvez poser une question en français et Oracle vous répondra en français.

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Points : 220
    Points
    220
    Par défaut
    Le problème ne viendrait-il pas du fait que P.STOCKAGE_PHOTO apparait dans le GROUP BY ? Un LOB (BLOB ou CLOB) est interdit dans un GROUP BY (et c'est assez logique, non ? )

    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
    rbaraer@Ora10g> create table testblob(id number, img blob);
     
    Table created.
     
    rbaraer@Ora10g> insert into testblob(id, img) values (1, HEXTORAW('0A0D1C'));
     
    1 row created.
     
    rbaraer@Ora10g> select id, count(*) from testblob group by id;
     
            ID   COUNT(*)
    ---------- ----------
             1          1
     
    rbaraer@Ora10g> select id, img, count(*) from testblob group by id, img;
    select id, img, count(*) from testblob group by id, img
                                                        *
    ERROR at line 1:
    ORA-00932: inconsistent datatypes: expected - got BLOB
     
     
    rbaraer@Ora10g>
    rbaraer

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/01/2014, 15h20
  2. Réponses: 3
    Dernier message: 13/06/2013, 10h41
  3. ORA-00932 : types de données incohérents
    Par nawal59 dans le forum Designer
    Réponses: 4
    Dernier message: 26/07/2010, 15h49
  4. Réponses: 4
    Dernier message: 19/09/2007, 16h18
  5. types de données incohérents
    Par afaraji dans le forum Oracle
    Réponses: 4
    Dernier message: 22/12/2005, 13h52

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