Fonction en pl/sql

Fermé
MASNINE - 29 mai 2014 à 12:00
 MASNINE - 29 mai 2014 à 16:28
Bonjour,
J ai réaliser un fonction en pl/sql qui me permet de changer et de concaténer des paramètres avec le résultat d une requête .voila le code de la fonction:

create or replace function new_potse_scada(p_old_name_scada in varchar2,
p_old_tension_scada in varchar2,

p_old_tranche_scada in varchar2,

p_new_name_scada in varchar2,
p_new_tension_scada in varchar2,
p_new_tranche_scada in varchar2)
return pls_integer
is

cursor cur_name is
select elem.ELEM,elem.ELEMENT_NAME,elem.ELEMENT_TYPE ,
elem.ELEMENT_TYPE_NUMBER ,elem.ELEMENT_TEXT ,elem.TOPOLOGICAL_MEMBER,
elem.NUMBER_OF_SOURCES,elem.DEVICE_CONTROL_SOURCE ,elem.PRIORITY1,
elem.PRIORITY2,elem.PRIORITY3,elem.PRIORITY4,elem.REDU_ELEM_FLAG,
elem.CONTID,elem.PROCID,elem.OID
from elem
where
elem.B1_NAME=p_old_name_scada
and elem.B2_NAME=p_old_tension_scada
and elem.B3_NAME=p_old_tranche_scada;
v_seq number(10):=0;
v_buffer varchar2(600);

begin

for enr_cur_name in cur_name
loop
v_seq := v_seq + 1;
v_buffer := RPAD (nvl(p_new_name_scada , ' ' ),8,' ' ) ||
RPAD (nvl(p_new_tension_scada , ' ' ),8,' ' ) ||
RPAD (nvl(p_new_tranche_scada , ' ' ),8,' ' ) ||
RPAD (nvl(enr_cur_name.ELEM , ' ' ),10,' ' ) ||
RPAD (nvl(enr_cur_name.ELEMENT_NAME , ' ' ),10,' ' ) ||
RPAD (nvl(enr_cur_name.ELEMENT_TYPE , ' ' ),20,' ' ) ||
RPAD (nvl(enr_cur_name.ELEMENT_TEXT , ' ' ),20,' ' ) ||
RPAD (nvl(enr_cur_name.TOPOLOGICAL_MEMBER , ' ' ),10,' ' ) ||
RPAD (nvl(enr_cur_name.NUMBER_OF_SOURCES , ' ' ),20,' ' ) ||
RPAD (nvl(enr_cur_name.DEVICE_CONTROL_SOURCE , ' ' ),20,' ' ) ||
RPAD (nvl(enr_cur_name.PRIORITY1 , ' ' ),20,' ' ) ||
RPAD (nvl(enr_cur_name.PRIORITY2 , ' ' ),20,' ' ) ||
RPAD (nvl(enr_cur_name.PRIORITY3 , ' ' ),20,' ' ) ||
RPAD (nvl(enr_cur_name.PRIORITY4 , ' ' ),20,' ' ) ||
RPAD (nvl(enr_cur_name.REDU_ELEM_FLAG , ' ' ),10,' ' ) ||
RPAD (nvl(enr_cur_name.CONTID , ' ' ),10,' ' ) ||
RPAD (nvl(enr_cur_name.PROCID , ' ' ),10,' ' ) ||
RPAD (nvl(enr_cur_name.OID , ' ' ),10,' ' ) ;

insert into buffer_result values (v_seq,v_buffer);
commit;
close cur_name;
end loop;
return 1;

end ;
mais qu on je la teste elle me renvoie cette erreur:
ORA-06502: PL/SQL : erreur numérique ou erreur sur une valeur: erreur de
conversion des caractères en chiffres
aider moi s il vous plait c est mon projet de fin d etude
A voir également:

1 réponse

personne pour répondre??? c est ma troisième questions et je ne reçoit pas de réponse :'(
0