You learn something new every day. Knocking up a demo of trapping the triggering statement for a 1401 (since we've had similar questions twice recently) I stumbled across the fact that we can add 'upgrade to 10g' to my list of fixes
SQL>create table xxx (a number(2), b varchar2(5));
Table created.
SQL>insert into xxx values (12, 'abcdef'); insert into xxx values (12, 'abcdef') * ERROR at line 1: ORA-12899 (See ORA-12899.ora-code.com): value too large for column "OPS$ACDOMAIN\N-LITCHFIELD"."XXX"."B" (actual: 6, maximum: 5)