oracle dump函数
生活随笔
收集整理的這篇文章主要介紹了
oracle dump函数
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
轉(zhuǎn)載:[url]http://www.eygle.com/archives/2005/12/how_oracle_stor.html[/url] 作者:eygle 版權(quán)聲明:可以任意轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明文章原始出處和作者信息及本聲明 DUMP函數(shù)的輸出格式類似: 類型 <[長(zhǎng)度]>,符號(hào)/指數(shù)位 [數(shù)字1,數(shù)字2,數(shù)字3,......,數(shù)字20] 各位的含義如下: 1.類型: Number型,Type=2 (類型代碼可以從Oracle的文檔上查到) 2.長(zhǎng)度:指存儲(chǔ)的字節(jié)數(shù) 3.符號(hào)/指數(shù)位 在存儲(chǔ)上,Oracle對(duì)正數(shù)和負(fù)數(shù)分別進(jìn)行存儲(chǔ)轉(zhuǎn)換: 正數(shù):加1存儲(chǔ)(為了避免Null)
負(fù)數(shù):被101減,如果總長(zhǎng)度小于21個(gè)字節(jié),最后加一個(gè)102(是為了排序的需要) 指數(shù)位換算: 正數(shù):指數(shù)=符號(hào)/指數(shù)位 - 193 (最高位為1是代表正數(shù))
負(fù)數(shù):指數(shù)=62 - 第一字節(jié) 4.從<數(shù)字1>開始是有效的數(shù)據(jù)位 從<數(shù)字1>開始是最高有效位,所存儲(chǔ)的數(shù)值計(jì)算方法為: 將下面計(jì)算的結(jié)果加起來: 每個(gè)<數(shù)字位>乘以100^(指數(shù)-N) (N是有效位數(shù)的順序位,第一個(gè)有效位的N=0) 5、舉例說明
<指數(shù)>:??? 195 - 193 = 2
<數(shù)字1>???? 13 - 1???? = 12 *100^(2-0) 120000
<數(shù)字2>???? 35 - 1???? = 34 *100^(2-1) 3400
<數(shù)字3>???? 57 - 1???? = 56 *100^(2-2) 56
<數(shù)字4>???? 79 - 1???? = 78 *100^(2-3) .78
<數(shù)字5>???? 91 - 1???? = 90 *100^(2-4) .009
??????????????????????????? 123456.789
<指數(shù)>????? 62 - 60 = 2(最高位是0,代表為負(fù)數(shù))
<數(shù)字1> 101 - 89 = 12 *100^(2-0) 120000
<數(shù)字2> 101 - 67 = 34 *100^(2-1) 3400
<數(shù)字3> 101 - 45 = 56 *100^(2-2) 56
<數(shù)字4> 101 - 23 = 78 *100^(2-3) .78
<數(shù)字5> 101 - 11 = 90 *100^(2-4) .009
????????????????????????????? 123456.789(-) 現(xiàn)在再考慮一下為什么在最后加102是為了排序的需要,-123456.789在數(shù)據(jù)庫(kù)中實(shí)際存儲(chǔ)為 60,89,67,45,23,11 而-123456.78901在數(shù)據(jù)庫(kù)中實(shí)際存儲(chǔ)為 60,89,67,45,23,11,91 可見,如果不在最后加上102,在排序時(shí)會(huì)出現(xiàn)-123456.789<-123456.78901的情況。
負(fù)數(shù):被101減,如果總長(zhǎng)度小于21個(gè)字節(jié),最后加一個(gè)102(是為了排序的需要) 指數(shù)位換算: 正數(shù):指數(shù)=符號(hào)/指數(shù)位 - 193 (最高位為1是代表正數(shù))
負(fù)數(shù):指數(shù)=62 - 第一字節(jié) 4.從<數(shù)字1>開始是有效的數(shù)據(jù)位 從<數(shù)字1>開始是最高有效位,所存儲(chǔ)的數(shù)值計(jì)算方法為: 將下面計(jì)算的結(jié)果加起來: 每個(gè)<數(shù)字位>乘以100^(指數(shù)-N) (N是有效位數(shù)的順序位,第一個(gè)有效位的N=0) 5、舉例說明
| SQL> select dump(123456.789) from dual;DUMP(123456.789) ------------------------------- Typ=2 Len=6: 195,13,35,57,79,91 |
<數(shù)字1>???? 13 - 1???? = 12 *100^(2-0) 120000
<數(shù)字2>???? 35 - 1???? = 34 *100^(2-1) 3400
<數(shù)字3>???? 57 - 1???? = 56 *100^(2-2) 56
<數(shù)字4>???? 79 - 1???? = 78 *100^(2-3) .78
<數(shù)字5>???? 91 - 1???? = 90 *100^(2-4) .009
??????????????????????????? 123456.789
| SQL> select dump(-123456.789) from dual;DUMP(-123456.789) ---------------------------------- Typ=2 Len=7: 60,89,67,45,23,11,102 |
<數(shù)字1> 101 - 89 = 12 *100^(2-0) 120000
<數(shù)字2> 101 - 67 = 34 *100^(2-1) 3400
<數(shù)字3> 101 - 45 = 56 *100^(2-2) 56
<數(shù)字4> 101 - 23 = 78 *100^(2-3) .78
<數(shù)字5> 101 - 11 = 90 *100^(2-4) .009
????????????????????????????? 123456.789(-) 現(xiàn)在再考慮一下為什么在最后加102是為了排序的需要,-123456.789在數(shù)據(jù)庫(kù)中實(shí)際存儲(chǔ)為 60,89,67,45,23,11 而-123456.78901在數(shù)據(jù)庫(kù)中實(shí)際存儲(chǔ)為 60,89,67,45,23,11,91 可見,如果不在最后加上102,在排序時(shí)會(huì)出現(xiàn)-123456.789<-123456.78901的情況。
轉(zhuǎn)載于:https://blog.51cto.com/airlgc/46807
總結(jié)
以上是生活随笔為你收集整理的oracle dump函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP开发10条经验总结(网上找的)
- 下一篇: 浅谈视觉设计的准确性