Bonjour,
ça va bientôt faire 1 journée que je planche sur ce pb sans résultat, alors... à votre bon coeur SVP !
La procédure suivante (je l'ai simplifiée pour l'exemple) :
CREATE OR REPLACE PROCEDURE PRCTEST (
COMMENTAIRE OUT MATABLE.MATABLE_COMMENT%TYPE)
AS
CURSOR c1 IS
SELECT MATABLE_COMMENT
FROM MATABLE
WHERE MATABLE_CLE = 85967
FOR UPDATE OF MATABLE_ETAT;
BEGIN
OPEN c1;
FETCH c1 INTO COMMENTAIRE;
IF c1%FOUND
THEN
UPDATE MATABLE SET MATABLE_ETAT = 'T' WHERE CURRENT OF c1;
COMMIT;
END IF;
CLOSE c1;
END;
déclenche une erreur sur la ligne du Fetch lorsque le champ MATABLE_COMMENT contient plus de 250 caractères (en l'occurrence, il en contient 330). Voici le message d'erreur :
ORA-06502: PL/SQL : erreur numérique ou erreur sur une valeur: tampon de chaîne de caractères trop petit
ORA-06512: à "USER_OWNER_GC.PRCTEST", ligne 11
ORA-06512: à ligne 7
Or, voici la déclaration de ce champ :
MATABLE_COMMENT VARCHAR2(2000),
Sachant que la syntaxe
COMMENTAIRE OUT VARCHAR2(500)
est refusée,
et que la syntaxe
COMMENTAIRE OUT VARCHAR2
donne le même résultat (erreur 06502), que pourrais-je essayer ?
Le contenu du champ qui fait planter (au cas où...) :
LISTEIDTRM:FE0500041210042007161711106:33,FE0500041210042007161819591:33,FE0500041210042007163827347:33,FE0500041210042007163900221:33,FE0500041210042007165019599:33,FE0500041210042007165125082:33,FE0500041213042007094137902:33,FE0500041213042007094321745:33,FE0500041213042007094430641:33,FE0500041213042007094514592:33;LISTEIDMSG:;
Dès que je mets moins de 256 caractères dans ce champ, la PS ne se plante plus...
Je précise que je suis plutôt novice en ce qui concerne Oracle, que la base doit être une base Oracle 8i (pas certain. Si c'est important, je me renseignerai).
Merci pour toute aide, je craque un peu...![]()
Partager