-2
oracle DB將值存儲爲NUMBER,根據我的理解,這些值是最大精度和標度。但是,Hive文檔指出,如果您將DECIMAL設置爲無精度或小數位,則會得到DECIMAL(10,0)doc。正確的HIVE數據類型是否適合ORACLE NUMBER。oracle NUMBER to hive
oracle DB將值存儲爲NUMBER,根據我的理解,這些值是最大精度和標度。但是,Hive文檔指出,如果您將DECIMAL設置爲無精度或小數位,則會得到DECIMAL(10,0)doc。正確的HIVE數據類型是否適合ORACLE NUMBER。oracle NUMBER to hive
根據Oracle docs:
NUMBER:當比例尺爲0,精度爲小於10
BIGINT當比例尺爲0,精度爲小於19
INT
DECIMAL當尺度大於0或精度較大時 比19
問題是當它被設置爲NUMBER時,你無法知道尺度和精度,因爲它存儲的值是這樣的...所以會被迫使用DECIMAL(38,0)?如果這樣做了,7.123將不會被正確存儲,因爲我們已經將它設置爲0了......沒有梳理數據以查看值是什麼樣的最合適的?似乎DECIMAL(38,0)將是最安全的。 –
爲什麼downvote? – tbone
只有在Oracle中的NUMBER數據類型具有一定比例和精度時,答案纔會解決。當問題表的創建者用NUMBER定義列時,我想問什麼是最好的選擇,沒有設置精度或比例。這是有幫助的,但不完全是對問題的回答 –