欢迎来到天天文库
浏览记录
ID:36302582
大小:252.31 KB
页数:25页
时间:2019-05-08
《oracle中的字符型及》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章Oracle中的字符型及处理方法与其他编程语言一样,Oracle中同样存在着数据类型。Oracle中的数据类型主要有两个应用场景:一是用于指定数据表中列的类型;二是用于PL/SQL编程中声明变量。Oracle的数据类型主要包括:字符型(character)、数值型(number)、日期型(date)和大对象型(LOB)。同时,Oracle提供了针对数据类型的内置函数。本章着重讲述Oracle中的字符型及其相关的函数。本章的主要内容包括:字符型简介字符型函数6.1字符型简介Oracle中的字符型有三
2、种,分别是char(n)、varchar(n)、varchar2(n)。本节将分别针对这三种类型进行介绍。6.1.1固定长度字符串——char(n)char(n)指定变量或列的数据类型为固定长度的字符串。其中,n代表字符串的长度。当实际字符串的长度不足n时,Oracle利用空格在右端补齐。当然,Oracle不允许实际字符串的长度大于n。数据库中列指定为char(n)类型时,n的最大值不能大于2000。否则,Oracle将抛出错误,如示例6-1所示。【示例6-1】当char(n)作为列的数据类型时,测试其
3、最大长度。SQL>createtabletest_char(f_charchar(2001));createtabletest_char(f_charchar(2001))ORA-00910:specifiedlengthtoolongforitsdatatype6.1.2varchar(n)Oracle中提供了varchar(n)的数据类型。该类型是Oracle迎合工业标准中的varchar而制定的。该数据类型实际是一个可变长度字符串类型。也就是说,当实际字符串的长度不足时,不会使用空格进行填充。同样
4、,实际字符串的长度也不允许超出n。【示例6-2】当作为列的数据类型出现时,varchar的最大长度不能大于4000,如下所示。SQL>altertabletest_charaddf_varcharvarchar(4001);altertabletest_charaddf_varcharvarchar(4001)ORA-00910:specifiedlengthtoolongforitsdatatypeSQL>altertabletest_charaddf_varcharvarchar(4000);Tab
5、lealtered6.1.3varchar2(n)与varchar(n)类型,varchar2(n)同样是可变长度的字符串类型。Oracle在工业标准之外,自定义了该数据类型。同时Oracle也提醒用户,尽量使用varchar2(n),而非varchar(n)。因为使用varchar2(n)可以获得Oracle向后兼容性的保证。【示例6-3】当作为列的数据类型出现时,varchar2的长度同样不能大于4000,如下所示。SQL>altertabletest_charaddf_varchar2varcha
6、r2(4001);altertabletest_charaddf_varchar2varchar2(4001)ORA-00910:specifiedlengthtoolongforitsdatatypeSQL>altertabletest_charaddf_varchar2varchar2(4000);Tablealtered6.2字符型分析对于一般用途的数据表来说,最常用的字符串类型为varchar2(n)。本节将着重分析char(n)与varchar2(n)的区别。6.2.1varchar2(n)与
7、char(n)的区别varchar2(n)为可变字符串类型,而char(n)为固定字符串类型。这二者的区别在于是否使用空格来补齐不足的部分。【示例6-4】在表test_char中,列f_char和f_varchar2的长度分别为2000和4000。先向其中插入新的记录,并为两列赋予相同的值。SQL>insertintotest_char(f_char,f_varchar2)2values('000','000');1rowinserted6.2.2varchar2(n)与char(n)的选择通过示例6-
8、5可以看出,char(n)类型的列通常占用较大的存储空间;而varchar2(n)类型的列占用的空间较小。所以,varchar2(n)类型是我们在进行数据库设计时的一般选择。但这并不意味着char(n)类型应该被摒弃。相反,char(n)在效率方面要高于varchar2(n)。这是因为可变长度的字符串类型在实际数据长度发生改变时,总需要不断调整存储空间。尤其是频繁修改数据,而数据长度也不断改变的情况下,这种效率的损耗尤其明显。大多数的应用程
此文档下载收益归作者所有