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

Hibernate Java Discussion :

CLOB et Oracle 9: inconsistent datatypes (ORA-00932)


Sujet :

Hibernate Java

  1. #1
    Membre averti
    Avatar de rozwel
    Inscrit en
    Mars 2002
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 324
    Points : 334
    Points
    334
    Par défaut CLOB et Oracle 9: inconsistent datatypes (ORA-00932)
    J'utilise Hibernate 3 et Oracle 9 pour une entité dont un des champs String est trop long pour rentrer dans un VARCHAR, donc j'utilise un CLOB.

    Voici le mapping Hibernate correspondant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <hibernate-mapping>
        <class name="com.mycompany.myapp.common.vo.ActionLog" table="ACTN_LOG">
    <!--...-->
            <property name="additionalInformation" type="org.springframework.orm.hibernate3.support.ClobStringType">
                <column name="ADTNL_INFO_TXT" />
            </property>
    <!--...-->
        </class>
    </hibernate-mapping>
    Comme j'utilise le ClobStringType de Spring, ma sessionFactory Spring est définie comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <beans>
    <!--...-->
            <bean id="lobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler"/>
     
    	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    		<!--...-->
    		<property name="lobHandler"><ref local="lobHandler"/>
    		</property>
    		<!--...-->
    	</bean>
    <!--...-->
    </beans>
    Le mapping se fait correctement mais quand j'essaie d'exécuter la requête HQL suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select distinct actionlog from ActionLog actionlog left outer join fetch actionlog.parentActionLog actionlogactionlog left outer join fetch actionlog.action actionlogaction left outer join fetch actionlog.state actionlogstate left outer join fetch actionlog.stateCause actionlogstatecause;
    J'obtiens le message d'erreur suivant, assez mystérieux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Caused by: java.sql.SQLException: ORA-00932: inconsistent datatypes: expected - got CLOB
    	at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    J'ai cherché cette erreur sur Google et j'ai trouvé pas mal d'occurrences mais aussi beaucoup de tatonnements (version d'oracle, mode batch, "tourne toi vers la fenêtre).

    Est-ce que quelqu'un aurait une idée d'où peut venir le problème?

  2. #2
    Membre habitué Avatar de fomazou
    Inscrit en
    Mars 2004
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 220
    Points : 151
    Points
    151
    Par défaut erreur ora-04091
    fais un tour vers le lien suivant http://sgbd.developpez.com/oracle/ora-04091/

  3. #3
    Membre averti
    Avatar de rozwel
    Inscrit en
    Mars 2002
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 324
    Points : 334
    Points
    334
    Par défaut
    Je ne vois pas trop le rapport avec l'article vers lequel tu pointes.

    En tout cas toujours est-il que je pense avoir trouvé la source du problème. La requête HQL about à une requête SQL effectuant un select distinct sur une table avec une colonne CLOB, ce qu'Oracle ne supporte pas. Comme je ne peux pas me passer du distinct étant donnée les joins et le fait que cette requête est générée, je vais devoir trouver une autre astuce pour stocker le contenu de mon CLOB.

    Merci quand même.

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

Discussions similaires

  1. ORA-00932: inconsistent datatypes: expected %s got %s
    Par labolabs dans le forum PL/SQL
    Réponses: 0
    Dernier message: 26/08/2009, 12h12
  2. Réponses: 6
    Dernier message: 16/04/2008, 12h01
  3. Réponses: 4
    Dernier message: 19/09/2007, 16h18
  4. ORA-932 : inconsistent datatypes
    Par fulub dans le forum Oracle
    Réponses: 5
    Dernier message: 16/03/2007, 09h12
  5. [OEM 2.2.0.0.0] ORA-00932: inconsistent datatypes
    Par shnouf dans le forum Oracle
    Réponses: 19
    Dernier message: 07/02/2006, 15h33

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