没有精度的Oracle数字类型 - 我怎么知道它是否是整数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了没有精度的Oracle数字类型 - 我怎么知道它是否是整数相关的知识,希望对你有一定的参考价值。
我们供应商的数据库包含所有数字的数字类型,包括整数和十进制数。从字面上看,每个数字类型列都创建为NUMBER,没有精度和比例。
这是一个很大的问题,因为我们需要将这些列映射到目标系统上的正确数据类型,我们正在将这些表中的数据加载到。
我们需要知道数字是整数还是小数。
除了进行随机抽样/数据分析之外,是否可以推断出正确的数据类型?
更新:我接受了以下答案和@Bohemian的建议。除此之外,我将使用SAMPLE子句对表进行随机抽样,因为我的源表很庞大(数十亿行)。
SELECT
MAX(CASE WHEN col1 IS NOT NULL AND col1 <> round(col1, 0) then 1 else 0 end) as col1,
MAX(CASE WHEN col2 IS NOT NULL AND col2 <> round(col2, 0) then 1 else 0 end) as col2
FROM TABLE
SAMPLE(0.05)
如果我只想采样X行,请使用下面的公式来SAMPLE(N):
Xrows * 100 / table_rows_total
答案
您可以尝试选择每个FIELD,并查看FIELD的所有值是否等于ROUND(FIELD,0)。如果是,则该字段应为整数。如果没有,十进制。
以上是关于没有精度的Oracle数字类型 - 我怎么知道它是否是整数的主要内容,如果未能解决你的问题,请参考以下文章