We are trying to create a gold schema for our data model and we are using DIFF to help us identify differences - one differnece that I notice comes up quite frequently is the following:
ALTER TABLE "GOLD"."<table_name>" MODIFY ("<column_name>" NUMBER(38,0));
When I do a describe on the tables they both show NUMBER(38) so I am not sure I need to do anything with the sql suggested in the Diff report. Any ideas why these appear for certain tables?
Could be a bug in sql developer; someone from the dev team will have to comment on that.
But you are correct that NUMBER(38) is equivalent to NUMBER(38,0). Neither will accept decimal digits but will round them to the nearest integer.
create table num (col1 number, col2 number(38), col3 number(38,0))
insert into num values (123.456, 123.456, 123.456)
select * from num
See the Number datatype in the SQL Language doc
Specify an integer using the following form:
This represents a fixed-point number with precision p and scale 0 and is equivalent to NUMBER(p,0).
So if your columns really are defined as you say you do not need to do anything.