Oracle字符值的比较和储存

白白丶

白白丶

2016-02-19 14:39

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享Oracle字符值的比较和储存,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

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

对于char和varchar2类型数据库列值的储存,以前一直以为:

1、char列按输入的值储存,假如值长度不够char列的长度,则在后面补上空格char(32)

2、varchar2列按输入的值储存,假如值长度不够varchar2列的长度,后面不补空格 上面2点都是对的,不过下面这一点就不对了

3、即使输入的值后面含空格,varchar2列在储存时也会去掉,也就是说varchar2列后一定不含空格

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

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列后面也有空格

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

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

1、空格补齐比较语法

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

2、非补齐比较语法

对于类型VARCHAR2、NVARCHAR2, 则不用补齐, 直接进行比较; 而对于1和2的类型作比较的情况,我的试验结果都是原值直接比较,也就是按2类的方法来

展开更多 50%)
分享

猜你喜欢

Oracle字符值的比较和储存

编程语言 网络编程
Oracle字符值的比较和储存

Oracle Faq(Oracle的字符集问题)

Web开发
Oracle Faq(Oracle的字符集问题)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Oracle-Decode()函数和CASE语句的比较

编程语言 网络编程
Oracle-Decode()函数和CASE语句的比较

SQL Server中全角和半角字符的比较问题

SQLServer
SQL Server中全角和半角字符的比较问题

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

ORACLE 截断字符串

编程语言 网络编程
ORACLE 截断字符串

DB2和 Oracle的并发控制(锁)的比较

编程语言 网络编程
DB2和 Oracle的并发控制(锁)的比较

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

win10设置打不开怎么办

win10设置打不开怎么办

library cache pin与PROCEDURE的重建

library cache pin与PROCEDURE的重建
下拉加载更多内容 ↓