Bonjour,
Aujourd'hui, j'ai du créer une petite procédure (appelons la NEW) en me basant sur de l'existant (Procedue OLD).
Facile: copier/coller/adapter et le tour est joué !
Ah tiens non.
Et pour cause, la procédure OLD fait appel à une autre procédure (qu'on appelera TIERS) qui permet de faire un traitement sur une chaine de caractère.
En gros, si vous avez suivi
Procedure OLD
...
...
...
TIERS()
...
END.
Ma procédure à moi l'utilise aussi, mais plante dès qu'un appel dessus est fait.
Procedure NEW
...
...
...
TIERS()
...
END.
Pour cause: là où la procédure originale OLD utilisait TIERS en y balançant une chaine de petite taille (~100 caract.), la mienne utilise TIERS avec une chaine qui fait ~300 caractères.
Et voila pourquoi ca plante.
Dans la déclaration de la Procédure TIERS, j'ai
CREATE OR REPLACE PROCEDURE TIERS (entree VARCHAR2, sortie OUT INTEGER) IS
...
Et par défaut VARCHAR2 est limité à 200 (< ~300 donc).
Bien évidemment, si je m'amuse à faire pour rigoler CREATE OR REPLACE PROCEDURE TIERS (entree VARCHAR2(200), sortie OUT INTEGER) IS
...
Ben ça gueule
Question: Comment je peux déclarer cette procédure TIERS pour qu'elle accepte des VARCHAR2 (ou d'autres chaine de caractères, je suis pas sectaire) qui fasse PLUS de 200 caractères ?
Partager