[20241105]测试21c下是否出现去掉0的情况.txt
--//11测试遇到的情况:
$ sql_idz.sh "select * from dept where deptno= 12\0" 3
sql_text = select * from dept where deptno= 12\0
full_hash_value(16) = FA4AB910EF98D2AA2710E6F201D05C1F or fa4ab910ef98d2aa2710e6f201d05c1f
xxxxx_matching_signature(10) = 2815003694193466399 or 21261747767903018015
hash_value(10) = 30432287 or hash_value(16) = 01D05C1F or 01d05c1f
sql_id(32) = 2f476y80x0r0z
sql_id(32) = 2f476y80x0r0z
sql_id(32) = 2f476y80x0r0z
--//window 1:
(gdb) c
Continuing.
kgllkal count 01 -- handle address: 000000007bcb6f50, mode: 1 kglnaobj address:0x7bcb70f8: "select * from dept where deptno= 12"
kglpnal count 01 -- handle address: 000000007bcb6f50, mode: 2 kglnaobj address:0x7bcb70f8: "select * from dept where deptno= 12"
kgllkal count 02 -- handle address: 000000007e3371e0, mode: 2 kglnaobj address:0x7e337388: "bookSYS"
kgllkal count 03 -- handle address: 000000007c19ee50, mode: 2 kglnaobj address:0x7c19eff8: "2710e6f2 1d05c1f$BUILD$"
--//怎么中间出现1个空格,应该是0换成了空格。 ~~~~~~~~~~~~~
--//测试21c下是否出现这样的情况。
1.环境:
SYS@book> @ ver2
==============================
PORT_STRING : x86_64/Linux 2.4.xx
VERSION : 21.0.0.0.0
BANNER : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
BANNER_FULL : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
BANNER_LEGACY : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
CON_ID : 0
PL/SQL procedure successfully completed.
2.找一个开始FULL_HASH_VALUE开头为0的语句。
--//21c下与11g有点不同,构成对象包括FULL_HASH_VALUE。而11g取后16位。
select * from V$DB_OBJECT_CACHE where FULL_HASH_VALUE like '0%';
select 1 from "SYS"."AQ$_AQ_PROP_TABLE_L" 006051166a52a1fb029ccda1d1b06148
$ sql_idz.sh 'select 1 from "SYS"."AQ$_AQ_PROP_TABLE_L"\0' 3
sql_text = select 1 from "SYS"."AQ$_AQ_PROP_TABLE_L"\0
full_hash_value(16) = 006051166A52A1FB029CCDA1D1B06148 or 006051166a52a1fb029ccda1d1b06148
xxxxx_matching_signature(10) = 188251379334144328 or 18634995453043695944
hash_value(10) = 3517997384 or hash_value(16) = D1B06148 or d1b06148
sql_id(32) = 0576dn78v0sa8
sql_id(32) = 576dn78v0sa8
sql_id(32) = 576dn78v0sa8
SYS@book> @ spid
==============================
SID : 270
SERIAL# : 31464
PROCESS : 5233
SERVER : DEDICATED
SPID : 5234
PID : 66
P_SERIAL# : 4
KILL_COMMAND : alter system kill session '270,31464' immediate;
PL/SQL procedure successfully completed.
SYS@book> select 1 from "SYS"."AQ$_AQ_PROP_TABLE_L";
no rows selected
$ rlgdb -f -p 5234 -x lkpn.gdb
...
(gdb) c
Continuing.
kgllkal count 01 -- handle address: 000000006caa6098, mode: 1 kglnaobj address:0x6caa6260: "select 1 from \"SYS\".\"AQ$_AQ_PROP_TABLE_L\""
kgllkal count 02 -- handle address: 0000000067488cd0, mode: 2 kglnaobj address:0x67488e98: "006051166a52a1fb029ccda1d1b06148$BUILD$CDB$ROOT"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kgllkal count 03 -- handle address: 000000006caa4938, mode: 1 kglnaobj address:0x6caa4b00: ""
kgllkal count 04 -- handle address: 0000000067488cd0, mode: 2 kglnaobj address:0x67488e98: "006051166a52a1fb029ccda1d1b06148$BUILD$CDB$ROOT"
kgllkal count 05 -- handle address: 0000000063d8a9d0, mode: 1 kglnaobj address:0x63d8ab98: ""
kglpnal count 01 -- handle address: 0000000063d8a9d0, mode: 3 kglnaobj address:0x63d8ab98: ""
kgllkal count 06 -- handle address: 00000000702d4f40, mode: 2 kglnaobj address:0x702d5108: "bookSYSCDB$ROOT"
kgllkal count 07 -- handle address: 0000000060f1dae0, mode: 1 kglnaobj address:0x60f1dca8: "006051166a52a1fb029ccda1d1b06148Child:2CDB$ROOT"
kglpnal count 02 -- handle address: 0000000060f1dae0, mode: 3 kglnaobj address:0x60f1dca8: "006051166a52a1fb029ccda1d1b06148Child:2CDB$ROOT"
kgllkal count 08 -- handle address: 00000000702d4f40, mode: 2 kglnaobj address:0x702d5108: "bookSYSCDB$ROOT"
kgllkal count 09 -- handle address: 000000006caa1fd8, mode: 2 kglnaobj address:0x6caa21a0: "AQ$_AQ_PROP_TABLE_LSYSCDB$ROOT"
kglpnal count 03 -- handle address: 000000006caa1fd8, mode: 2 kglnaobj address:0x6caa21a0: "AQ$_AQ_PROP_TABLE_LSYSCDB$ROOT"
kgllkal count 10 -- handle address: 000000006fa6cec0, mode: 1 kglnaobj address:0x6fa6d088: "select type#,blocks,extents,minexts,maxexts,extsize,extpct,user#,iniexts,NVL(lists,65535),NVL(groups,65535),cachehint,hwmincr, NVL(spare1,0),NVL(scanhint,0),NVL(bitmapranges,0) from seg$ where ts#=:1 "...
kgllkal count 11 -- handle address: 000000006fa6b760, mode: 1 kglnaobj address:0x6fa6b928: ""
kgllkal count 12 -- handle address: 00000000700eb3e8, mode: 2 kglnaobj address:0x700eb5b0: "SEG$SYSCDB$ROOT"
kglpnal count 04 -- handle address: 00000000700eb3e8, mode: 2 kglnaobj address:0x700eb5b0: "SEG$SYSCDB$ROOT"
kgllkal count 13 -- handle address: 0000000068179400, mode: 2 kglnaobj address:0x681795c8: "10625066508157466143CDB$ROOT"
kglpnal count 05 -- handle address: 0000000068179400, mode: 2 kglnaobj address:0x681795c8: "10625066508157466143CDB$ROOT"
--//可以发现前面的0并没有变成空格,搞不懂11g为什么这样设计。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-3045435/ ,如需转载,请注明出处,否则将追究法律责任。