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