Oracle中的字符型及.ppt
《Oracle中的字符型及.ppt》由会员分享,可在线阅读,更多相关《Oracle中的字符型及.ppt(25页珍藏版)》请在三一办公上搜索。
1、第6章 Oracle中的字符型及处理方法,与其他编程语言一样,Oracle中同样存在着数据类型。Oracle中的数据类型主要有两个应用场景:一是用于指定数据表中列的类型;二是用于PL/SQL编程中声明变量。Oracle的数据类型主要包括:字符型(character)、数值型(number)、日期型(date)和大对象型(LOB)。同时,Oracle提供了针对数据类型的内置函数。本章着重讲述Oracle中的字符型及其相关的函数。本章的主要内容包括:字符型简介字符型函数,6.1 字符型简介,Oracle中的字符型有三种,分别是char(n)、varchar(n)、varchar2(n)。本节将分别
2、针对这三种类型进行介绍。,6.1.1 固定长度字符串char(n),char(n)指定变量或列的数据类型为固定长度的字符串。其中,n代表字符串的长度。当实际字符串的长度不足n时,Oracle利用空格在右端补齐。当然,Oracle不允许实际字符串的长度大于n。数据库中列指定为char(n)类型时,n的最大值不能大于2000。否则,Oracle将抛出错误,如示例6-1所示。【示例6-1】当char(n)作为列的数据类型时,测试其最大长度。SQL create table test_char(f_char char(2001);create table test_char(f_char char(2
3、001)ORA-00910:specified length too long for its datatype,6.1.2 varchar(n),Oracle中提供了varchar(n)的数据类型。该类型是Oracle迎合工业标准中的varchar而制定的。该数据类型实际是一个可变长度字符串类型。也就是说,当实际字符串的长度不足时,不会使用空格进行填充。同样,实际字符串的长度也不允许超出n。【示例6-2】当作为列的数据类型出现时,varchar的最大长度不能大于4000,如下所示。SQL alter table test_char add f_varchar varchar(4001);al
4、ter table test_char add f_varchar varchar(4001)ORA-00910:specified length too long for its datatype SQL alter table test_char add f_varchar varchar(4000);Table altered,6.1.3 varchar2(n),与varchar(n)类型,varchar2(n)同样是可变长度的字符串类型。Oracle在工业标准之外,自定义了该数据类型。同时Oracle也提醒用户,尽量使用varchar2(n),而非varchar(n)。因为使用varc
5、har2(n)可以获得Oracle向后兼容性的保证。【示例6-3】当作为列的数据类型出现时,varchar2的长度同样不能大于4000,如下所示。SQL alter table test_char add f_varchar2 varchar2(4001);alter table test_char add f_varchar2 varchar2(4001)ORA-00910:specified length too long for its datatypeSQL alter table test_char add f_varchar2 varchar2(4000);Table altere
6、d,6.2 字符型分析,对于一般用途的数据表来说,最常用的字符串类型为varchar2(n)。本节将着重分析char(n)与varchar2(n)的区别。,6.2.1 varchar2(n)与char(n)的区别,varchar2(n)为可变字符串类型,而char(n)为固定字符串类型。这二者的区别在于是否使用空格来补齐不足的部分。【示例6-4】在表test_char中,列f_char和f_varchar2的长度分别为2000和4000。先向其中插入新的记录,并为两列赋予相同的值。SQL insert into test_char(f_char,f_varchar2)2 values(000,
7、000);1 row inserted,6.2.2 varchar2(n)与char(n)的选择,通过示例6-5可以看出,char(n)类型的列通常占用较大的存储空间;而varchar2(n)类型的列占用的空间较小。所以,varchar2(n)类型是我们在进行数据库设计时的一般选择。但这并不意味着char(n)类型应该被摒弃。相反,char(n)在效率方面要高于varchar2(n)。这是因为可变长度的字符串类型在实际数据长度发生改变时,总需要不断调整存储空间。尤其是频繁修改数据,而数据长度也不断改变的情况下,这种效率的损耗尤其明显。大多数的应用程序,并不将数据库端的效率作为首要考虑的需求。而
8、更倾向于较小的空间代价,因此大多使用varchar2(n)来定义列。而char(n)则是典型的“以空间换时间”,读者可以在实际开发中酌情选择。,6.2.3 变量声明中的字符串类型,三种字符串类型char(n)、varchar(n)、varchar2(n),都可用于声明变量。但是,利用三者声明时,最大长度均为32767。【示例6-5】测试char(n)、varchar(n)及varchar2(n)用于变量声明时的最大长度。SQL declare s char(32768);2 begin 3 null;4 end;5/,6.3 字符型处理,Oracle提供了丰富的字符串函数来处理字符型数据。本节
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 中的 字符
链接地址:https://www.31ppt.com/p-6513428.html