2017-03-17 213 views
-2

oracle DB将值存储为NUMBER,根据我的理解,这些值是最大精度和标度。但是,Hive文档指出,如果您将DECIMAL设置为无精度或小数位,则会得到DECIMAL(10,0)doc。正确的HIVE数据类型是否适合ORACLE NUMBER。oracle NUMBER to hive

回答

-1

根据Oracle docs

NUMBER:当比例尺为0,精度为小于10

BIGINT当比例尺为0,精度为小于19

INT

DECIMAL当尺度大于0或精度较大时 比19

+0

问题是当它被设置为NUMBER时,你无法知道尺度和精度,因为它存储的值是这样的...所以会被迫使用DECIMAL(38,0)?如果这样做了,7.123将不会被正确存储,因为我们已经将它设置为0了......没有梳理数据以查看值是什么样的最合适的?似乎DECIMAL(38,0)将是最安全的。 –

+0

为什么downvote? – tbone

+0

只有在Oracle中的NUMBER数据类型具有一定比例和精度时,答案才会解决。当问题表的创建者用NUMBER定义列时,我想问什么是最好的选择,没有设置精度或比例。这是有帮助的,但不完全是对问题的回答 –