Bonjour,
J'utilise une base de données Oracle 10g, avec le dernier driver jdbc (ojdbc14).
Dans ma base de données j'ai crée un procedure stockée.
J'ai crée un programme en java qui se connecte a la base de données puis envoie les variables a ma procédure stockée à l'aide de la classe CallableStatement, dans mon cas 3 variables :
Voici donc le code :
Mon programme fonctionne correctement, cependant lorsque une des variables est trop volumineuse le programme sort l'exception
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 String procedure= "{? = call fct(?,?,?)}"; CallableStatement call = connexion.prepareCall(); call.registerOutParameter(1, java.sql.Types.VARCHAR); call.setString(2, _chaine1); call.setString(3, _chaine2); call.setString(4, _chaine3); boolean retour = call.execute();
java.sql.SQLException: setString ne peut traiter que les chaînes de moins de 32 766 caractères
En effet je veux envoyer un fichier à ma procedure stockée, cependant il est apparament impossible d'envoie ce fichier grâce a la méthode setString().
J'ai donc tenté d'envoyer le fichier sous forme de BLOB à ma procédure stockée :
Cependant je bute sur l'exception :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 String procedure= "{? = call fct(?,?,?)}"; CallableStatement call = connexion.prepareCall(); call.registerOutParameter(1, java.sql.Types.VARCHAR); call.setString(2, _chaine1); call.setString(3, _chaine2); call.setBinaryStream(4, _fichier, _taillefichier); boolean retour = call.execute();
java.sql.SQLException: La taille des données est supérieure à la taille max. pour ce type: 1748080
Mon fichier fesant bien 1748080 octets.
Donc la question est comment peut on envoyer des fichiers à une procédure stockée ??
Merci pour votre aide
Partager