why not fix your code to have things defined on the database attributes in the first place?
that is, instead of:
x number(9);
use
x table.column%type;
short of that - do you have any error logging - if you capture the error stack, you would have been told the LINE NUMBER of the error exactly. It should have taken about 3 seconds to see what the issue was.
If instead of making a call like:
begin p; end;
from the client, you make this call:
begin
p;
exception when others
then
log_error_using_autonomous_transaction();
RAISE;
end;
or, by putting logic like that into your top level routines (routines called from the client) you'll end up logging every single error that happens and using dbms_utility:
FORMAT_CALL_STACK Function
Formats the current call stack
FORMAT_ERROR_BACKTRACE Function
Formats the backtrace from the point of the current error to the exception handler where the error was caught
FORMAT_ERROR_STACK Function
Formats the current error stack
you can capture the entire call/error stack with line numbers and all.