Bonjour,
J'ai la procédure suivante: (simplifiée ici mais le principal y est)
En gros, le but de cette procédure est de récupérer différentes valeurs, et de construire une chaine, puis de renvoyer cette chaine.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 PROCEDURE toto ( P_LOGINNAME IN VARCHAR2, P_IDENT IN VARCHAR2, P_DATE IN VARCHAR2, D_COMMANDE OUT VARCHAR2 ) IS d_loginname VARCHAR2 (20) := P_LOGINNAME; d_ident VARCHAR2 (20) := P_IDENT; d_extfic VARCHAR2(50); d_passcd VARCHAR2(50); d_batch_cd VARCHAR2(50); d_cheminscript VARCHAR2(50); d_env VARCHAR2(50); d_instance VARCHAR2(50); d_seq VARCHAR2(50); d_com VARCHAR2(300); d_date VARCHAR2(10); d_com :='.' || D_CHEMINSCRIPT || '/aabatenv.bsh ' || D_ENV || ';' || D_CHEMINSCRIPT || '/imprime ' || D_CHEMINSCRIPT || '/' || d_batch_cd || ' ' || P_LOGINNAME || '/' || d_passcd || '@' || D_INSTANCE || ' ' || D_SEQ || ' ' || d_extfic ||'/cc'|| D_SEQ ||'_FR.lst"." 1 "."".""' || d_date ||'""." '|| d_extfic ||'/cc'|| D_SEQ ||'_FR.lst'; dbms_output.put_line('Ligne: '); dbms_output.put_line(d_com); D_COMMANDE := d_com; END;
Tout fonctionne tant que je ne tente pas de récupérer la valeur de ma chaine dans ma propriété de sortie...
Mais seulement voilà, mon but est bien de récupérer cette valeur....
Et, je ne sais pas vraiment comment faire, même si je suis certains que c'est con comme les pieds...
J'ai essayé de placer directement le résultat de ma concaténation dans ma variable de sortie, mais bien sur, cela ne fonctionne pas...
Le message d'erreur:
Seulement, comment agrandir ma D_COMMANDE ?? (qui est, j'ai bien compris trop petit...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ORA-06502: PL/SQL: erreur numérique ou erreur sur une valeur: tampon de chaine de caractères trop petit ORA-06512: à xxxxxxxxxxx ligne 89 ORA-06512à à ligne 13
Merci pour votre aide !!
Partager