ITPub博客

首页 > 数据库 > Oracle > [20241105]测试21c下是否出现去掉0的情况.txt

[20241105]测试21c下是否出现去掉0的情况.txt

原创 Oracle 作者:lfree 时间:2024-11-06 20:15:28 0 删除 编辑

[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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4017
  • 访问量
    7994098