[20190910]关于降序索引问题5.txt

[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.

posted @ 2019-09-10 22:04  lfree  阅读(151)  评论(0编辑  收藏  举报