Bonjour,

on a une application qui toune sur une base de données Oracle Release 9.0.1.0.1 .
Nous voulons que cette application utilise l'encodage chinois, donc on a créé une nouvelle base de données qui utilise l'encodage ZHT32EUC.

On a exporter les données de la première base et les importer dans la deuxième. Lors de l'import ce message s'affiche :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
import effectué dans le jeu de caractères WE8MSWIN1252 et le jeu NCHAR AL16UTF16
le serveur d'import utilise le jeu de caractères ZHT32EUC (conversion possible)
L'import se fait avec succès.

Lors de l'exécution de la requête suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Hibernate: update user set a=?, b=?, c=?
on a le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
ORA-01483: longueur non valide pour variable de lien DATE ou NUMBER
en fait c dû au type Date qui sont mappés comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
<property name="b" type="timestamp">
       <column name="b" length="7" />
</property>
Si j'exécute la requête sur la base directement ça marche :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
UPDATE utilisateur b = to_date('2009-10-26 12:10:45','yyyy-MM-dd hh:mi:ss') WHERE a = 'xxx'
et si j'exécte cette même requête à partir d'hibrnate ça marche pas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
PreparedStatement stmt = session.connection().prepareStatement("UPDATE utilisateur set b = to_date('2009-10-27 12:10:45','yyyy-MM-dd hh:mi:ss') WHERE a = 'xxx'");
			stmt.executeUpdate();

Je sais pas si ce problème est dû à une fausse configuration de la base ou au hibernate ?

Si quelqu'un a une idée je suis preneur.

Merci d'avance.