ITPub博客

首页 > 数据库 > Oracle > [20211110]oracle数字编码30.txt

[20211110]oracle数字编码30.txt

原创 Oracle 作者:lfree 时间:2021-11-11 09:52:26 0 删除 编辑

[20211110]oracle数字编码30.txt

--//链接http://www.itpub.net/thread-2144556-1-1.html,出现数字编码30的问题,理论讲不可能出现这样的编码。
--//以前也遇到类似的问题。http://www.itpub.net/thread-2095697-1-1.html
--//自己在测试环境模拟看看。

1.环境:
SCOTT@book> @ ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

2.测试:
create table t ( x number);
insert into t values (0);
insert into t values (1);
insert into t values (2);
insert into t values (0);
commit ;

SCOTT@book> select rowid,t.* from t ;
ROWID                    X
------------------ -------
AABQdgAAEAAAALDAAA       0
AABQdgAAEAAAALDAAB       1
AABQdgAAEAAAALDAAC       2
AABQdgAAEAAAALDAAD       0

SCOTT@book> @ rowid AABQdgAAEAAAALDAAA
    OBJECT       FILE      BLOCK        ROW ROWID_DBA            DBA                  TEXT
---------- ---------- ---------- ---------- -------------------- -------------------- ----------------------------------------
    329568          4        707          0  0x10002C3           4,707                alter system dump datafile 4 block 707 ;

BBED> x /rx *kdbr[3]
rowdata[0]                                  @8166
----------
flag@8166: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@8167: 0x02
cols@8168:    1

col    0[1] @8169:  0x80

BBED> assign offset 8170=0x30;
ub1 rowdata[0]                              @8170     0x30
--//注意偏移要加1,前面1位是长度指示器。

BBED> sum apply
Check value for File 4, Block 707:
current = 0xb731, required = 0xb731

BBED> x /rx *kdbr[3]
rowdata[0]                                  @8166
----------
flag@8166: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@8167: 0x02
cols@8168:    1

col    0[1] @8169:  0x30

3.在sqlplus下执行:
SCOTT@book> select rowid,dump(x) c30 ,x from t ;
ROWID              C30                                      X
------------------ ------------------------------ -----------
AABQdgAAEAAAALDAAA Typ=2 Len=1: 128                         0
AABQdgAAEAAAALDAAB Typ=2 Len=2: 193,2                       1
AABQdgAAEAAAALDAAC Typ=2 Len=2: 193,3                       2
AABQdgAAEAAAALDAAD Typ=2 Len=1: 48                ###########

--//在toad下执行报如下错误。
OCI-22065: number to text translation for the given format causes overflow



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2841659/ ,如需转载,请注明出处,否则将追究法律责任。

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

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7969593