Bonjour à tous
j'ai un petit problème avec oracle.
j'utilise le code suivant
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
ps.setString(position, StringUtils.abbreviate(value, ps.getParameterMetaData().getPrecision(position)));

ce code sur toutes mes bases binde le paramètre position avec la valeur value et si value a une valeur plus longue que ne le permets la colonne associée au paramètre la valeur est tronquée.
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
ps.setString(5, StringUtils.abbreviate("ceci est une valeur courte", 30));
//ceci est une valeur courte
ps.setString(5, StringUtils.abbreviate("ceci est une valeur beaucoup trop longue pour entrer dans un champs de 30 caractères", 30));
//ceci est une valeur beaucou...

Mais je suis passé sous oracle qui implémente bien la méthode ps.getParameterMetaData().getPrecision(position).

Mais voilà le code source de cette méthode chez Oracle est
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
    public int getPrecision(int i)
        throws SQLException
    {
        DBError.throwUnsupportedFeatureSqlException();
        return -1;
    }
enorme surprise.
du coup je ne sais pas comment limiter la taille de mes string lorsque je fais un insert dans oracle.

merci
A+jyt