2017-03-17 67 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定義列時,我想問什麼是最好的選擇,沒有設置精度或比例。這是有幫助的,但不完全是對問題的回答 –