oracle中的2个疑惑 如题:1. oralce中的大事务概念是不是就是指在一个会话中包含多次或多种操作的事务?2. varchar和varchar2的区别? 后者是前者的升级吗? 为什么通常只用varchar2而不用varchar? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 varchar2是oracle提供的独特的数据类型 oracle保证在任何版本中该数据类型向上和向下兼容 但不保证varchar,这是因为varchar是标准sql提供的数据类型 有可能随着sql标准的变化而改变 1、大事物,我想很占资源是肯定的了。肯定包含你说的吧。2、varchar是定长;varchar2是变长,省空间。 oracle文档里面提到目前varchar是varchar2的一个别名而已,但以后可能会那varchar作为它用,所以建议使用varchar2SQL> create table test_char(col1 char(10),col2 varchar(10),col3 varchar2(10)); 表已创建。 SQL> insert into test_char values('aa','aa','aa'); 已创建 1 行。 SQL> select length(col1),length(col2),length(col3) from test_char; LENGTH(COL1) LENGTH(COL2) LENGTH(COL3) ------------ ------------ ------------ 10 2 2 这样应该清楚了吧,char(包括nchar)是定长的,varchar,varchar2都是可变长度的 varchar2与varchar目前差不多,有时候varchar效率高,但是oracle不保证以后的兼容性,所以有等于没有,因为是标准SQL定义的,所以oracle保留了而已。要用的话有一定的危险性。万一以后oracle不兼容了就惨了。值得注意的字符类型应该是char和varchar2,char是定长,不足尾部补空格,varchar2是变长,那么什么时候要使用char呢?答案是任何时候都不要使用char,否则会给你带来n多的麻烦。不要和我说char比varchar2效率高,请拿出证据来。Oracle 大师tom kyte说,永远不要使用char,就算一个定长的,是长度为一的,我都宁愿用varchar2(1)而不用char(1),至于效率,更是无稽之谈,在oracle中char只补过是伪装的varchar2,而不是什么空间换时间。char类型带来的变成困难与错误不计其数,而且在字段和索引存储中总是占用最大空间,知道了这些,以后你还会用char吗??用char还有个巨大的缺点就是,如果以后改变知道的长度,你的很多程序都要重新写,而用varchar2因为变长的概念,就不需要了。char就是独特的尾部补空格与比较规则,会让你不慎其烦的 oralce中的大事务概念谁帮忙解释下! 函数里面创建临时表报错问题,请各们大侠们帮小妹看看,谢谢! 请教一个数据库设计问题 Cognos服务启动问题 imp导入dmp文件修改表空间地址 请问怎样在oracle9i中使用oracle manager service.谢谢! oracle8.17与oracle7.3的链路问题 为什么会报“未选择活动的会话”错 有谁装过oracle9i?帮我一下吧!!! 难题:在ORACLE里如何取得某条记录的前N条记录或后N条记录??????? 老问题,新问!!oracle7.3 移植到oracle8i的方法?? 新手请教Oracle连接问题! DAB Studio 连接不上远程数据库!!!
oracle保证在任何版本中该数据类型向上和向下兼容
但不保证varchar,这是因为varchar是标准sql提供的数据类型
有可能随着sql标准的变化而改变
2、varchar是定长;varchar2是变长,省空间。
表已创建。
SQL> insert into test_char values('aa','aa','aa');
已创建 1 行。
SQL> select length(col1),length(col2),length(col3) from test_char;
LENGTH(COL1) LENGTH(COL2) LENGTH(COL3)
------------ ------------ ------------
10 2 2
这样应该清楚了吧,char(包括nchar)是定长的,varchar,varchar2都是可变长度的
要用的话有一定的危险性。万一以后oracle不兼容了就惨了。值得注意的字符类型应该是char和varchar2,char是定长,不足尾部补空格,varchar2是变长,那么什么时候要使用char呢?答案是任何时候都不要使用char,否则会给你带来n多的麻烦。
不要和我说char比varchar2效率高,请拿出证据来。Oracle 大师tom kyte说,永远不要使用char,就算一个定长的,是长度为一的,我都宁愿用varchar2(1)而不用char(1),至于效率,更是无稽之谈,在oracle中char只补过是伪装的varchar2,而不是什么空间换时间。
char类型带来的变成困难与错误不计其数,而且在字段和索引存储中总是占用最大空间,知道了这些,以后你还会用char吗??
用char还有个巨大的缺点就是,如果以后改变知道的长度,你的很多程序都要重新写,而用varchar2因为变长的概念,就不需要了。char就是独特的尾部补空格与比较规则,会让你不慎其烦的