Bonjour,
je travaille actuellement sur une migration de base de données Oracle vers Postgresql dans le cadre d'une application Java-GWT.
Un problème me bloque sur les procédures stockées :
- j'ai des procédures créées de la sorte : CREATE OR REPLACE FUNCTION schema.nomProcedure(OUT code text, OUT erreur text, IN numero text).
Le code SQL de la procédure affiche à la fin : ALTER FUNCTION schema.nomProcedure(text)
Seul les paramètres IN comptent alors.
- puisque je suis en Java, je les appelle depuis le pool de connexion JDBC.
Le problème est que cela génère l'erreur suivante :
org.postgresql.util.PSQLException: ERREUR: la fonction schema.nomProcedure(text, text, text) n'existe pas
[java] Indice?: Aucune fonction ne correspond au nom donn? et aux types d'arguments.
[java] Vous devez ajouter des conversions explicites de type.
Cela signifie alors que les paramètres OUT ne doivent pas être mentionnés dans l'appel = > SELECT schema.nomProcedure('2'); /* ?????? */
Cette solution génère une erreur également.
Au final, je ne parviens pas à appeler les procédures stockées possédant des paramètres OUT. J'ai 378 procédures, avec des dépendances entre procédures.
Faut-il supprimer tous les paramètres OUT ? Les remplacer par du IN ? Les remplacer par ni IN ni OUT ?
N.B : le INOUT ne fonctionne pas non plus.
Merci.
Partager