varchar2 和 varchar-程序员宅基地

技术标签: oracle  migration  存储  数据库  table  sql  

感谢:http://blog.csdn.net/defonds/article/details/4238492

实验说明varchar2和char最大长度

引言
区别: 
1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (20)

,表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度

,20只是最大值,当你存储的字符小于20时,按实际长度存储。

2.CHAR的效率比VARCHAR2的效率稍高。

3.目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做

,尽管它保留以后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的

VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。如果你想有向后兼容的

能力,Oracle建议使用VARCHAR2而不是VARCHAR。

何时该用CHAR,何时该用varchar2? 
CHAR与VARCHAR2是一对矛盾的统一体,两者是互补的关系. 
VARCHAR2比CHAR节省空间,在效率上比CHAR会稍微差一些,即要想获得效率,就必须牺牲一定的空间,

这也就是我们在数据库设计上常说的‘以空间换效率’。 
VARCHAR2虽然比CHAR节省空间,但是如果一个VARCHAR2列经常被修改,而且每次被修改的数据的长度不

同,这会引起‘行迁移’(Row Migration)现象,而这造成多余的I/O,是数据库设计和调整中要尽力避

免的,在这种情况下用CHAR代替VARCHAR2会更好一些。

实验说明varchar2和char最大长度

1.实验说明varchar2最大长度:

SQL> create table test3 (v2 varchar2(4001));
create table test3 (v2 varchar2(4001))
                                *
ERROR at line 1:
ORA-00910: specified length too long for its datatype

可见4001个bite太大了

SQL> create table test3 (v2 varchar2(4000));
Table created.

可见varchar2的最大长度是4000bite。

2.实验说明char最大长度:

SQL> create table test2 (v2 char(2001));
create table test2 (c char(2001))
                            *
ERROR at line 1:
ORA-00910: specified length too long for its datatype

可见4001个bite太大了

SQL> create table test1 (c char(2000));
Table created.

可见char的最大长度是2000bite。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/DR_LF/article/details/6663347

智能推荐

XML和JAVA实体类的相互转化(微信例子)_微信xml转对象-程序员宅基地

/** * 扩展xstream,使其支持CDATA块 * */ private static XStream xstream = new XStream(new XppDriver() { public HierarchicalStreamWriter createWriter(Writer out) { _微信xml转对象

【天池月饼活动】基于自然语言处理文本生成与轮询问答与依图生文与中秋月饼配图_基于自然语言处理文本生成的中秋-程序员宅基地

文章目录活动要求项目演示自然语言处理文本生成之对联上下联对答:自然语言处理文本生成之依图生文:多级轮询月饼对话自动生成月饼代码讲解自从我前天进入阿里天池实验室,我就被他吸粉了,嫖了他的服务器和算力,今天看到有个月饼节小活动,刚好自己的模型在训练,有时间了,另外好像天池这个项目点赞topn可以嫖件天池的体恤,刚好没衣服穿了, 就花了几十分钟写了这个天池小活动的代码~欢迎来Star哈哈哈。活动要求画月饼+配文字项目演示自然语言处理文本生成之对联上下联对答:上联:良辰良景良偶文本生成下联:佳男佳._基于自然语言处理文本生成的中秋

【题解】【PTA-Python题库】第3章-19 找最长的字符串 (15 分)_计算最长的字符串长度pta-程序员宅基地

找最长的字符串本题要求编写程序,针对输入的N个字符串,输出其中最长的字符串。输入格式:输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。输出格式:在一行中用以下格式输出最长的字符串:The longest is: 最长的字符串如果字符串的长度相同,则输出先输入的字符串。输入样例:5liwangzhangjinxia..._计算最长的字符串长度pta

英语小练习-程序员宅基地

  Rail,like many project managers,had studied the waterfall model of software development as the primary(主要) software life-cyle process.(Rail,像很多项目经理一样,学过瀑布模型,它是一个重要的软件生命周期过程)He has all set to use it ...

npm 依赖下载报错 Hostname/IP does not match certificate‘s 相关 解决方案_hostname/ip does not match certificate's altnames:-程序员宅基地

npm 依赖下载报错:ostname/IP does not match certificate's altnames: Host: registry.cnpmjs.org. is not in the cert's altnames: DNS:r.cnpmjs.org解决方案第一步 :尝试使用 npm set strict-ssl false 本人亲测有效,如果报相同的错误可以尝试使用 npm config set registry http://registry.n..._hostname/ip does not match certificate's altnames: host:

随便推点

【数据结构】栈的代码实现_一个栈的完整实现代码_Hello Code.的博客-程序员宅基地

个人博客:www.hellocode.top所有文章均在上方博客首发,其他平台同步更新本文专栏:《数据结构与算法》如有问题,欢迎指正,一起学习~~文章参考整理自小码哥的《恋上数据结构和算法》课程,图片转载自课程PPT,如有侵权,请联系删除~~文章目录接口设计代码实现栈是一种特殊的线性表, 只能在一端进行插入或者删除操作往栈中添加元素的操作,一般叫做push,入栈从栈中移除元素的操作,一般叫做pop,出栈(只能移除栈顶的元素)成员变量无非就是size和一个element._一个栈的完整实现代码

php中一些知识点(老师不会教哦)-程序员宅基地

我们在阅读某些源代码的时候会发现有一种另类的写法,比如//异常写法if(false==$result)//正常写法if($result==false)其实这是一种很聪明的写法,它可以很大程度上杜绝手误造成的严重bug。假如我们在正常方法中把==误写成=,那么if($result=false)就会返回未知结果,导致在实际运行中产生未知的Bug,如果使用异常的写法出现手..._php老师

Android实现系统联系人字符分组以及字母表导航效果 ._用英文字母给联系人分组-程序员宅基地

功能的实现结合了网上很多非常的好的实现,小小的优化看下。实现思路:1. 获取手机联系人列表:通过Uri uri = Uri.parse("content://com.android.contacts/data/phones"); 查询联系人列表2 联系人的字段非常的多,摘取了NAME = "name", NUMBER = "number", SORT_KEY = "sor_用英文字母给联系人分组

华为的一道编码笔试题-程序员宅基地

实现二叉树的前序遍历,并输出结点的值

〖Linux〗联想K860/i Android 4.2及以上的Bootimg解压与打包工具-程序员宅基地

因为自己有需要,所以花了一点时间来写了一下。1. 解压工具#!/bin/bash - #===============================================================================## FILE: unpackszbboot# # USAGE: ./unpackszb...

BCB & Delphi访问Excel文件编程那些事儿_delphi 发送ctrl +s 给excel-程序员宅基地

较详细地介绍了BCB或Delphi编程访问Excel操作Excel文件的OLE概念和方法,并通过完整且可执行的实例和较多的程序片段进行了说明。还给出了包括微软官方Office文档在内的一般性的问题解决方法。阅读本文后,Excel文件访问操作的编程基本没有问题了。............_delphi 发送ctrl +s 给excel

推荐文章

热门文章

相关标签