Salut à tous,
j'utilise un pilote JDBC pour se connecter à une base de donnée oracle 9i. Le problème c'est quand j'appelle une procédure stockée avec un type de retour "OUT" Record, cela gènère une exception. J'ai trouvé sur le net que ce problème vient du fait que JDBC ne supporte pas l'appel à des procédures ou des fonctions ayant comme paramètre des arguments de type Record ou Boolean. J'ai touvé une solution pour les Boolean mais j'arrive pas à le faire pour les Record.
Si quelqu'un possède une idée, je suis preneur .
Voici mon le code de ma fonction stockée :
/***************************/
FUNCTION c_out_proc (P_MONTANT IN NUMBER,
P_CODE_DEVISE IN VARCHAR2,
P_CHAMP IN VARCHAR2,
P_TRT IN VARCHAR2,
P_msg OUT PKG_MDW_DEF_GENERAL.PARAM_MSG
)
RETURN INTEGER IS
output Boolean;
BEGIN
output := DB_MDW_CTRL_AMOUNT(P_MONTANT,P_CODE_DEVISE,P_CHAMP,P_TRT,P_msg);
IF (output = TRUE) THEN
RETURN 1;
ELSE
RETURN 0;
END IF;
END;
/***************************/
avec PKG_MDW_DEF_GENERAL.PARAM_MSG de type record, son code est le suivant :
/**************************************/
TYPE PARAM_MSG IS RECORD (NO VARCHAR2(10),
P1 VARCHAR2(255),
P2 VARCHAR2(255),
P3 VARCHAR2(255),
USER VARCHAR2(1024),
TECH VARCHAR2(1024));
/**************************************/
et DB_MDW_CTRL_AMOUNT est la fonction essentielle que j'utilise. En effet j'ai écrit la fonction c_out_proc pour remédier à l'exception générée par le JDBC lorsque la fonction stockée retourne un boolean. J'ai changé le type de retour de boolean vers Integer. Il reste de trouver une solution au type de retour Record.
Partager