网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Oracle开发(一).Windows下配置使.
.oracle自动imp脚本代码.
.ORACLE8i数据库体系结构.
.PL/SQL Packages and Types Refe.
.PL/SQL学习笔记(一).
.Oracle归档模式的命令及参数说明.
.关于Oracle数据库热备份脚本深入.
.局域网通过LINUX主机上网手记.
.redhat下如何允许root通过telnet.
.Oracle常用的OCI函数.
.Oracle数据库中SQL语句性能调整原.
._row_cache_cursors参数应当如何.
.使用exp工具进行数据库备份及恢复.
.ORACLE性能诊断―学习statspack笔.
.细化解析:Oracle使用的hints调整.
.J2EE应用开发中与Oracle数据库的.
.实现RedHat非正常关机的自动磁盘.
.NT下如何彻底删除Oracle?.
.应对RMAN-06026错误,使用dbms_b.
.FAQ Collection-性能调整.

Oracle字符值的比较和储存

发表日期:2008-2-9


     以前对Oracle字符值的比较和储存没有弄得很清楚,直到最近写程序碰到了,才认真去实践验证了一下,结果还真的发现自己的一些错误熟悉。

对于char和varchar2类型数据库列值的储存,以前一直以为:
1、char列按输入的值储存,假如值长度不够char列的长度,则在后面补上空格char(32)
2、varchar2列按输入的值储存,假如值长度不够varchar2列的长度,后面不补空格
上面2点都是对的,不过下面这一点就不对了
3、即使输入的值后面含空格,varchar2列在储存时也会去掉,也就是说varchar2列后一定不含空格
SQL> create table testyyw(col1 char(2),col2 varchar2(2)); Table created SQL> insert into testyyw values ('x','x'); 1 row inserted SQL> insert into testyyw values ('x ','x '); 1 row inserted SQL> select dump(col1),dump(col2) from testyyw; DUMP(COL1) DUMP(COL2) ------------------------------------------------------------------------ Typ=96 Len=2: 120,32 Typ=1 Len=1: 120 Typ=96 Len=2: 120,32 Typ=1 Len=2: 120,32
用dump函数看出来了,2行在数据库中的储存方式不一样的,varchar2列后面也有空格

在网上查了下Oracle字符的比较,查到了如下结果
关于字符值的比较, Oracle使用以下两种比较规则:

1、空格补齐比较语法
对于类型CHAR、NCHAR、text literals、USER函数值, 在进行比较时, 先在较短的那个
字符串后补上空格以使长度相等, 然后再进行比较.
所以, 'ab'='ab '

2、非补齐比较语法
对于类型VARCHAR2、NVARCHAR2, 则不用补齐, 直接进行比较;
而对于1和2的类型作比较的情况,我的试验结果都是原值直接比较,也就是按2类的方法来
上一篇:Oracle压力测试之orabm 人气:694
下一篇:不要忽视Oracle 10g STATSPACK 人气:540
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐