PL/SQL:erro numérico ou de valor:buffer de cadeia de caracteres muito pequeno %ROWTYPE
Aposto que o problema se origina do uso de Char, que é uma string de comprimento fixo. Não tenho certeza de onde, mas em algum lugar do seu código você tenta colocar uma string Char ou varchar2 de comprimento N em um char de comprimento M onde M> N.