2010-02-19 7 views
3

Le problème est: Je suis une mise PreparedStatement pour une requête dans une table avec ces champs (entre autres):A Java PreparedStatement avec un paramètre setBigDecimal soulève ORA-03115

TABLE1_RSPN NUMBER(8,0) 
TABLE1_AFDV NUMBER(8,0) 
TABLE1_VALUE NUMBER(17,2) 
TABLE1_NOTE VARCHAR2(255 BYTE) 
TABLE1_USR VARCHAR2(20 BYTE) 

...

En essayant d'obtenir des informations dans mon application Java, j'ai mis un prepareStatement qui soulève l'exception Oracle ORA-03115 type de données réseau ou représentation non pris en charge.

Le code Java correspondant est ceci:

sentSQL = "SELECT TABLE1.*, TABLE2.CIAS FROM TABLE1, TABLE2 WHERE TABLE1_RSPN = ?" + 
" AND TABLE2_AFDV = TABLE1_AFDV"; 
ps = con.prepareStatement(sentSQL); 
ps.setBigDecimal(1, dto.getCodResponsability()); 
rs = ps.executeQuery(sentSQL); 

CodResponsability est BigDecimal. J'ai aussi essayé avec Double et Long, sans joie.

Merci d'avance pour votre aide!

Répondre

5

Cette ligne est probablement faux:

rs = ps.executeQuery(sentSQL); 

Cela appelle en fait Statement's executeQuery et ne tient pas compte des variables que vous avez lié.

Il devrait être

rs = ps.executeQuery(); 
+0

Merci! Pas de télé et pas de bière qui fait fuir Alfabravo ... et oublier. :) – Alfabravo