`

Oracle基本数据类型存储格式研究(一)—字符类型

阅读更多

1.char

char是定长字符型,内部代码是:96,最多可以存储2000个字节,其中在char字符变量中,字节长度无法满足申请长度的则自动以空格变量补足,空格变量ASCII码为32;

2.varchar2

varchar2是变长字符型,内部代码是:1,最多可以存储4000个字符

实验如下:

 

SYS@huiche> create table test_char (char_col char(10), varchar_col varchar2(10));

表已创建。

SYS@huiche>insert into test_char values ('abc','abc');

已创建 1 行。

SYS@huiche>insert into test_char values ('testchar12','testchar12');

已创建 1 行。

SYS@huiche>insert into test_char values ('中国','中国');

已创建 1 行。

SYS@huiche>commit;

提交完成。
SYS@huiche>select dbms_rowid.rowid_object(rowid) object_id, dbms_rowid.rowid_relative_fno(rowid) file_id,
  2  dbms_rowid.rowid_block_number(rowid) block_id ,dbms_rowid.rowid_row_number(rowid) num from test_char;

 OBJECT_ID    FILE_ID   BLOCK_ID        NUM
---------- ---------- ---------- ----------
     63183          1      86858          0
     63183          1      86858          1
     63183          1      86858          2

SYS@huiche>alter system dump datafile 1 block 86858;

系统已更改。

SYS@huiche>

 其中dump文件内容为:

 

data_block_dump,data header at 0x524845c
===============
tsiz: 0x1fa0
hsiz: 0x18
pbl: 0x0524845c
bdba: 0x0041534a
     76543210
flag=--------
ntab=1
nrow=3
frre=-1
fsbo=0x18
fseo=0x1f60
avsp=0x1f48
tosp=0x1f48
0xe:pti[0] nrow=3 offs=0
0x12:pri[0] offs=0x1f8e
0x14:pri[1] offs=0x1f75
0x16:pri[2] offs=0x1f60
block_row_dump:
tab 0, row 0, @0x1f8e
tl: 18 fb: --H-FL-- lb: 0x1  cc: 2
col  0: [10]  61 62 63 20 20 20 20 20 20 20
col  1: [ 3]  61 62 63
tab 0, row 1, @0x1f75
tl: 25 fb: --H-FL-- lb: 0x1  cc: 2
col  0: [10]  74 65 73 74 63 68 61 72 31 32
col  1: [10]  74 65 73 74 63 68 61 72 31 32
tab 0, row 2, @0x1f60
tl: 21 fb: --H-FL-- lb: 0x1  cc: 2
col  0: [10]  e4 b8 ad e5 9b bd 20 20 20 20
col  1: [ 6]  e4 b8 ad e5 9b bd
end_of_block_dump

End dump data blocks tsn: 0 file#: 1 minblk 86858 maxblk 86858

 

 其中也可以用dump函数:

SYS@huiche>select char_col,dump(char_col,16) from test_char;

CHAR_COL             DUMP(CHAR_COL,16)
-------------------- --------------------------------------------------
abc                    Typ=96 Len=10: 61,62,63,20,20,20,20,20,20,20
testchar12         Typ=96 Len=10: 74,65,73,74,63,68,61,72,31,32
中国             Typ=96 Len=10: e4,b8,ad,e5,9b,bd,20,20,20,20

SYS@huiche>select varchar_col,dump(varchar_col,16) from test_char;

VARCHAR_COL          DUMP(VARCHAR_COL,16)
-------------------- --------------------------------------------------
abc                     Typ=1 Len=3: 61,62,63
testchar12          Typ=1 Len=10: 74,65,73,74,63,68,61,72,31,32
中国              Typ=1 Len=6: e4,b8,ad,e5,9b,bd

SYS@huiche>SYS@huiche>select * from nls_database_parameters where parameter like '%CHARACTERSET%';

PARAMETER                                                    VALUE
------------------------------------------------------------ ----------------------------
NLS_CHARACTERSET                                             AL32UTF8
NLS_NCHAR_CHARACTERSET                                       UTF8

 

 根据dump文件和dump函数的比较可以说明:字符类型在oracle数据库底层是以16进制的ASCII码存储,汉字根据数据库字符集不同,在GBK字符集中占用2字节,在UTF8字符集中占用3个字节。

1
1
分享到:
评论

相关推荐

    Oracle基本数据类型存储格式浅析

    Oracle基本数据类型存储格式浅析(一)——字符类型 Oracle基本数据类型存储格式浅析(二)——数字类型 Oracle基本数据类型存储格式浅析(三)——日期类型 Oracle基本数据类型存储格式浅析(四)——ROWID类型 ...

    oracle基本数据类型存储格式浅析.pdf

    oracle 的基本数据类型的存储格式有了一些了解,最近有做了一些测试进行了验证。打算整理总结一下,这一 篇主要说明字符类型的存储格式。主要包括char、varchar2 和long 等几种类型。

    Oracle 数据类型

    7、LOB数据类型用于存储大型的,没有被结构化的数据,例如二进制文件,图片文件,LOB主要分为BLOB和CLOB,BLOB数据类型用于存储二进制对象:图像,音频,视频...CLOB数据类型用于存储字符格式的大型对象 8、ORACLE...

    oracle支持的数据类型

    常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字符串 ...数据类型 参数 描述 char(n) n=1 to 2000字节 定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节)

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    LOB数据类型 clob 1~4GB 只能存储字符数据 nclob 1~4GB 保存本地语言字符集数据 blob 1~4GB 以二进制信息保存数据 三、 DDL语言 1. Create table命令 用于创建表。在创建表时,经常会创建该表的主键、外键、唯一...

    oracle知识简介

    RAW:这是一种变长的二进制数据类型,采用这种数据类型存储的数据不会发生字符集的转换,可以把它看做是由数据库存储的信息的二进制字节串。最多可以存储2000字节 LONG RAW 能存储2GB的二进制信息,建议所有开发中都...

    Oracle截取JSON字符串内容的方法

    主要介绍了Oracle截取JSON字符串内容 ,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

    Oracle11g从入门到精通2

    9.4.1 采用正确的数据类型 9.4.2 存储参数的正确设置 9.4.3 定期回收无用表空间 9.4.4 归档历史表空间 第10章 备份与恢复机制 10.1 备份与恢复的方法 10.2 使用数据泵进行逻辑备份和恢复 10.2.1 使用...

    Oracle数据库恢复工具Oracle Database Unloader(ODU)3.09

    支持的数据类型包括:NUMBER, CHAR, VARCHAR2, NCHAR,NVARHCAR2, LONG, DATE, RAW, LONG RAW, BLOB, CLOB, TIMESTAMP (9i+) , BINARY FLOAT, BINARY DOUBLE (10g+) 导出的数据格式包括纯文本和DMP文件两种。以纯...

    ITPUB电子杂志第11期-论坛精华内容选辑

    1.Oracle基本数据类型存储格式浅析 2.一次SQL Tuning引出来的not in , not exists 语句的N种写法 3.REF CURSOR 小结 4.日期转换函数的格式参数大小写规则 5.Oracle数据库字符集问题解析 6.关于Oracle10g跨平台传输表...

    oracle数据库修复

    支持的数据类型包括:NUMBER, CHAR, VARCHAR2, NCHAR,NVARHCAR2, LONG, DATE, RAW, LONG RAW, BLOB, CLOB, TIMESTAMP (9i+) , BINARY FLOAT, BINARY DOUBLE (10g+) 全面支持LOB字段: 支持CLOB、NCLOB和BLOB CLOB...

    Oracle8i_9i数据库基础

    §1.7 ORACLE数据类型 38 §1.8 SQL 语句基础 44 §1.8.1 SQL语句所用符号 44 §1.8.2 简单select 查询 45 §1.9 伪列及伪表 46 §1.10 使用SQL Worksheet工作 46 第二章 查询基础 50 §2.1 SELECT语句 50 §2.2 SQL...

    Oracle11g从入门到精通

    9.4.1 采用正确的数据类型 9.4.2 存储参数的正确设置 9.4.3 定期回收无用表空间 9.4.4 归档历史表空间 第10章 备份与恢复机制 10.1 备份与恢复的方法 10.2 使用数据泵进行逻辑备份和恢复 10.2.1 使用expdp...

    Oracle自学(学习)材料 (共18章 偏理论一点)

    11 管理表 目标 11-2 储存用户数据 11-3 Oracle 数据类型 11-5 ROWID 格式 11-8 行的结构 11-10 创建一张表 11-11 创建临时表 11-13 创建表:指南 11-14 修改储存参数 11-15 手工分配片 11-16 重构非分区表 11-17 ...

    Oracle Database 11g初学者指南--详细书签版

    1.3 Oracle Database 11g的基本数据类型 8 1.3.1 varchar2 8 1.3.2 数字 9 1.3.3 日期 9 1.3.4 时间戳 9 1.3.5 clob 10 1.3.6 blob 10 1.4 表 10 1.5 存储对象 11 1.5.1 视图 12 1.5.2 触发器 12 1.5.3 ...

    oracle实验报告

    (2)INTO子句后的变量个数和位置及数据类型必须和SELECT命令后的字段名表相同。 (3)INTO子句后可以是简单类型变量或组合类型变量。 (4)SELECT语句中的WHERE条件可以包含PL/SQL块中定义的变量及表达式,但变量名...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

     Oracle 数据库中的SQL是当今市场上功能最强大的SQL实现之一,而本书全面展示了这一工具的威力。如何才能让更多人有效地学习和掌握SQL呢?Karen Morton及其团队在本书中提供了专业的方案:先掌握语言特性,再学习...

    ORACLE11G宝典.rar 是光盘里面的内容,书太厚咧没法影印啊

     4.2.4 数据类型  4.2.5 集合API方法  4.3 流程控制  4.3.1条件控制  4.3.2 循环控制  4.3.3 顺序控制  4.4 游标  4.4.1显式游标  4.4.2 隐式游标  4.4.3 游标FOR循环  4.4.4 使用游标更新或...

    Oracle.11g.从入门到精通 (2/2)

    4.1.4 PL/SQL数据类型 4.1.5 PIJSQL变量和常量 4.1.6 PL/SQL语句控制结构 4.1.7 PL/SQL表达式 4.2 PL/SQL的游标 4.2.1 基本原理 4.2.2 显式游标 4.2.3 隐式游标 4.2.4 游标属性 4.2.5 游标变量 4.3 过程 4.3.1 创建...

Global site tag (gtag.js) - Google Analytics