我使用oracle字典视图来找出两个模式之间的列差异。在同步数据类型差异时,我发现NUMBER和INTEGER数据类型存储在all_tab_columns / user_tab_columns / dba_tab_columns中只有NUMBER,所以很难同步数据类型差异,其中一个模式/列有数据类型,另一个模式/列具有整数数据类型。
虽然模式的比较显示数据类型不匹配。请使用字典视图建议是否有任何其他替代形式,或者字典视图中的任何特定属性可用于标识数据类型是否为整数。
整数只存在于sql标准,即Oracle不推荐使用。
原文链接:https://www.f2er.com/oracle/206990.html你应该使用Number代替。
整数在Oracle后面被存储为Number。
最常见的是,当int存储为ID,并且它们没有参数定义 – 所以在理论上,你可以看看元数据视图的规模和精度列,看到没有十进制值可以存储 – 但99%的时间这个不会帮助。
如上所述,您可以查找数(38,0)列或类似(即不允许小数点的列),但这只会告诉你哪些列不能取小数,而不是定义了哪些列,以便INTS可以存储。
建议:
在数字列上做一个数据配置文件。这样的东西:
select max( case when trunc(column_name,0)=column_name then 0 else 1 end ) as has_dec_vals from table_name