Problema con conversión de char a number
Buenas no se en q este mi error, según yo todo esta bien… Me marca el siguiente error
Informe de error:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 16
06502. 00000 – «PL/SQL: numeric or value error%s»
Lo mas curioso es que la parte que genera el error la probe con un select de esta manera:
[sql]
select to_number( trim(substr(‘P7 ‘,2,3)) , ‘999’) from dual;
[/sql]
y me devuelve lo que quiero qme devuelva…. ahora si ahi esta bien xq marca error en este código???
[sql]
set serveroutput on buffer 2560000;
declare
cursor c_operacion is
select d.personal from DOCUMENTO d;
v_tmp char(4);
nroCadena number;
keyCadena char(4);
n number;
begin
open c_operacion;
n := 1;
fetch c_operacion into v_tmp;
WHILE c_operacion%FOUND
LOOP
nroCadena := to_number( trim(substr(v_tmp,2,3)) , ‘999’);
keyCadena := ‘P’ || to_char(nroCadena,’000′);
dbms_output.put_line(n || ‘ – ‘ || keyCadena);
n := n+1;
FETCH c_operacion INTO v_tmp;
END LOOP;
dbms_output.put_line(‘La cantidad de registros es: ‘ || to_char(n));
close c_operacion;
end;
[/sql]