SQL> create table wwm( thechar char(10),thevarchar varchar2(20),thenumber number(10,2));
Table created.
SQL> select * from wwm;
THECHAR THEVARCHAR THENUMBER
---------- -------------------- ----------
dsffg varchar2 10.2
wwm wwmwwm2 -999.2
charcharch charcharcharcharchar 100000000
1* select thechar,dump(thechar) from wwm
SQL> /
THECHAR DUMP(THECHAR)
-----------------------------------------------------------
Dsffg Typ=96 Len=10: 100,115,102,102,103,32,32,32,32,32
Wwm Typ=96 Len=10: 119,119,109,32,32,32,32,32,32,32
Charcharch Typ=96 Len=10: 99,104,97,114,99,104,97,114,99,104
可以看到THECHAR是CHAR( Typ=96)类型的(NCHAR也是96),长度是10(Len=10),不足长度的补空(32)
SQL> select thevarchar,dump(thevarchar) from wwm;
THEVARCHAR DUMP(THEVARCHAR)
--------------------------------------------------------------------------------------
varchar2 Typ=1 Len=8: 118,97,114,99,104,97,114,50
wwmwwm2 Typ=1 Len=7: 119,119,109,119,119,109,50
charcharcharcharchar Typ=1 Len=20: 99,104,97,114,99,104,97,114,99,104,97,114,99,104,97,114,99,104,97,114
可以看到THEVARCHAR是VARCHAR2( Typ=1)类型的,NVARCHAR2也是1
SQL> select thenumber,dump(thenumber) from wwm;
THENUMBER DUMP(THENUMBER)
-----------------------------------------------------
10.2 Typ=2 Len=3: 193,11,21
-999.2 Typ=2 Len=5: 61,92,2,81,102
100000000 Typ=2 Len=6: 196,100,100,100,100,100
可以看到thenumber是NUMBER( Typ=2)类型的(FLOAT也是2),
select dump(address,16) from v$sqlarea where rownum = 1;
DUMP(ADDRESS,16)
--------------------------------------------------------------------------------
Typ=23 Len=8: 7,0,0,0,47,c9,a4,98
RAW Typ=23
1* select thedate,dump(thedate) from wwm6
THEDATE DUMP(THEDATE)
--------------------------------------------------------------------------------
05-JUN-06 Typ=12 Len=7: 120,106,6,5,17,16,11
DATE类型Typ=12
CENTURY:120-100=20
Year: 106-100=06
Month=6
Day=5
Hours=17-1=16
Minutes=16-1=16
Seconds=11-1=10
SQL> select sysdate,dump(sysdate) from dual;
SYSDATE DUMP(SYSDATE)
---------------------------------------------------------
07-6月 -06 Typ=13 Len=8: 214,7,6,7,14,57,43,0
SYSDATE是Typ=13
排序,加减等操作就是根据DUMP的结果来排序的(会经过与或等运算,但基数不同,不在这里讨论),
这里只是列出了常用的类型,希望大家以后在读内部结构的时候发现Typ=XX时会想起这篇文章。谢谢