[20190910]關於降序索引問題5.txt

lfree發表於2019-09-10

[20190910]關於降序索引問題5.txt

--//測試了索引TERM使用0xfe表示,回想到以前遇到降序索引的特殊字元編碼問題,現在可是忘得一乾二淨。
--//現在想想當時自己怎麼猜測出來的,^_^。
--//連結:http://blog.itpub.net/267265/viewspace-2221527/ =>[20181124]關於降序索引問題2.txt

--//當時的總結:
--//總之一點就是排序的需要,跳出1個坑(結尾加FF),又進入一個更深的坑,佔用chr(0)編碼,而chr(0)又佔用chr(1)的編碼,又進入
--//一個更深的坑。結果出現這樣特殊的編碼,實際上也給一些開發提供一些借鑑,看看oracle技術人員如何實現這些,雖然不知道該如
--//何寫這些程式碼。

--//再次做一個記錄:
ascii碼                 編碼
---------------------------------------------
0x00                    FEFE
0x0000                  FEFD
0x0001                  FEFC
0x00NN(0xNN>=0x02)      FEFB(注:指前面0x00編碼,再次看到這裡有點暈)
0x01                    FEFA
0x0100                  FEF9
0x0101                  FEF8        
0x01NN(0xNN>=0x02)      FEF7(注:指前面0x01編碼)
---------------------------------------------

WITH x0
     AS ( SELECT '00' a, CHR (0) b FROM DUAL
         UNION ALL
         SELECT '01', CHR (1) FROM DUAL
         union all
         SELECT '02', CHR (2) FROM DUAL
         )
select * from (
SELECT x1.a || x2.a c10, sys_op_descend (x1.b || x2.b) c20  FROM x0 x1, x0 x2
union all
SELECT x1.a c10, sys_op_descend (x1.b) c20 FROM x0 x1 ) order by c10 ;

C10        C20
---------- --------------------
00         FEFEFF
0000       FEFDFF
0001       FEFCFF
0002       FEFBFDFF
01         FEFAFF
0100       FEF9FF
0101       FEF8FF
0102       FEF7FDFF
02         FDFF
0200       FDFEFEFF
0201       FDFEFAFF
0202       FDFDFF
12 rows selected.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2656690/,如需轉載,請註明出處,否則將追究法律責任。

相關文章