Pois é, eu queria ver o que está vindo do arquivo.
As vezes arquivos texto vem SEM casas decimais.
Por exemplo: No arquivo vem 25210, e isso se traduz para 252.10.
No seu caso, você criou um NUMBER(13,2), sendo que o TOTAL é 13 dígitos, sendo 2 casas decimais. (11 + 2).
Veja:
Selecionar tudo
SQL> declare
2 vnum number (3,2);
3 begin
4 vnum :=10;
5 end;
6 /
declare
vnum number (3,2);
begin
vnum :=10;
end;
ORA-06502: PL/SQL: numeric or value error: number precision too large
ORA-06512: at line 4
Mesmo erro que está acontecendo pra você.
Se eu tentar inserir 1.23, daí aceita.
Selecionar tudo
SQL> declare
2 vnum number (3,2);
3 begin
4 vnum :=1.23;
5 end;
6 /
PL/SQL procedure successfully completed
Resumindo. Talvez você tenha que dividir por 100 o seu número.
EU disse TALVEZ. Quem define isso é a especificação do arquivo.