however, that there is absolutely no impact from
increasing the size/scale of number or varchar columns. You MUST evaluate your code for something like the following:
create table t (c1 number(10), c2 varchar2(10));
Table created.
create procedure p
is
v1 number(10); -- Matches C1.
v2 varchar2(10); -- Matches C2.
begin
select c1 into v1 from t;
select c2 into v2 from t;
end;
/
Procedure created.
insert into t values ( 1234567890, '1234567890');
1 row inserted.
commit;
Commit complete.
exec p;
PL/SQL procedure successfully completed.
alter table t modify c1 number(11); -- C1 now eleven digits.
Table altered.
update t set c1 = 12345678901;
1 row updated.
commit;
Commit complete.
exec p;
BEGIN p; END;
ORA-06502: PL/SQL numeric or value error: number precision too large.
alter table t modify c2 varchar2(11); -- C2 now 11 chars.
update t set c1 = 1234567890, c2 = '12345678901';
1 row updated.
commit;
Commit complete.
exec p;
BEGIN p; END:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
Note that procedure p was not modified for the new larger sizes of the columns. There is no impact until p is executed with the actual data in the table being larger than the size of its internal variables. This could be minutes after implementation--or days or weeks or months.
As innocuous as such table changes may seem, they are not without risk. Application code should be
examined and
tested after such a change. Your CM system/tools will make it easier to find the relationships between code and tables. You do use CM tools, right?
Kind regards,
Russ