ITPub博客

首页 > 数据库 > Oracle > null的研究(终篇)&char的开篇

null的研究(终篇)&char的开篇

原创 Oracle 作者:stilllovekk 时间:2016-03-16 17:03:01 0 删除 编辑
在官方文档中,说null与空字符串是等价的。但是oracle建议不要把他们当成一样,因为以后可能会改变。
另外,他们还是有区别的:
1,is null 或者 is not null,这是整体的,不能把null换成空字符串;
2,在case 或者decode中,null和空字符串也是有区别的;
3,null可以成为boolean类型的第三个值,空字符串不行;
4,plsql中的动态语句中绑定的变量可以传入空字符串,但是不能传入null;


char
总体来说,建议用varcahr2,不建议用char。
char这个东西呢,跟varchar2类似。都是字符串类型,但是char是定长的,就算你的字段值没有这么长,也会在你的值后面加上空格,这无疑会占用更多的空间,同时呢,这个小特性,还使得char在绑定变量以及plsql中有很多容易出问题的地方。

SQL>  CREATE TABLE TEST (A CHAR(10),B VARCHAR2(10));


Table created.


SQL> insert into test values('haha','haha');


1 row created.


SQL> commit;


Commit complete.


SQL> select length(a),length(b) from test;


 LENGTH(A)  LENGTH(B)
---------- ----------
        10          4

就到这,在用sql解趣味题,改天一起发出来


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30123160/viewspace-2058309/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-01-30

  • 博文量
    20
  • 访问量
    29031