Je dois appeler la procédure stockée Oracle à partir de l'interface jdbc. Procédure prend un paramètre de type d'enregistrement qui comprend VARCHAR (2) Champ:Une chaîne de caractères de java à plsql varchar2 (1) provoque une 'buffer de chaînes de caractères trop petite'
TYPE cust_account_rec_type IS RECORD (
... , status VARCHAR2(1), ...);
Ma chaîne de requête JDBC déclare variable de type fiche et attribue une valeur de champ d'état, où côté droit est un paramètre de la requête. Ensuite, appelle la procédure.
p_cust_account_rec.status := :IN_insert_status;
someprocedure(p_cust_account_rec);
appel Java requête définit la valeur pour paramètre IN_insert_status:
callableStatement.setString("IN_insert_status", "I");
// callableStatement is type of java.sql.CallableStatement
après callableStatement.execute() i se
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
points de message à la ligne avec ce caractère varchar variable. Toutefois, lorsque la valeur i dans la chaîne de requête sql est:
p_cust_account_rec.status := 'I';
cela fonctionne.
Quel est le problème avec le passage d'une seule chaîne de caractères dans java, ou qu'est-ce qui me manque?
Il m'interdit de modifier la base de données. C'est une base de données externe et de ce point de vue, c'est "lecture seule" pour moi. – Invader92
jeter un oeil ici, pourrait être le même problème, http://stackoverflow.com/questions/17598969/character-string-buffer-too-small-error-in-oracle-stored-procedure –