MS Server和Oracle中对NULL处理的一些细节差异

2016-02-19 09:22 3 1 收藏

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐MS Server和Oracle中对NULL处理的一些细节差异,赶紧看过来吧!

【 tulaoshi.com - 编程语言 】

INSERT INTO Table (TestCol) VALUES(‘')
其中的TestCol字段,其实在设计的时候,已经被设计为NOT NULL,但我们需要了解一点,在sql server中,null和空格是不同的,也就是说,上面的语句插入的是一个空,但并不是NULL,只有当我们的插入语句中没有该字段的时候,才会被认为违反非空的条件约束,这里可能用英文的表达可能会更加的准确一些,如果把NULL翻译成“空”的话,可能就会很容易搞混了。此外,如果我们的字段是INT类型的话,如果我们插入空的话,会得到一个0,也就是说,MS Sql server会自动帮我们处理对空格的转化。

但是在Oracle中,这个便利便不存在咯,我们必须严格按照规则来进行插入,也就是说,我们再想视图通过插入空来满足NOT NULL的设计约束,已经不能成功啦,我们必须插入实实在在的内容才能符合NOT NULL的约束。

像类似地一些细节在我们设计既要满足MS Sql,又要满足Oracle的系统地时候,尤其会成为我们需要处理的家常便饭,这一方面要求我们要严格规范我们的sql脚本,再者也要对程序处理语句进行严格的条件控制才行,否则类似地问题在联调的时候会让我们陷入一个接着一个的噩梦~

来源:http://www.tulaoshi.com/n/20160219/1590542.html

延伸阅读
tulaoshi 避免误入雷区 孕前五个生活小细节须知 孕育 宝宝 可是一件大工程,备孕准备当然必不可少。很多想要宝宝的 女性 来说,备孕要做哪些准备可能感觉一头雾水,图老师小编偷偷告诉你哟,女性的孕前调理包括饮食、起居、运动、护理等各方面的调节。当然生活中一些小细节万万不能忽视的哟。 一、时刻都...
首先说明这里指的是Java中的String,虽然我已经决定转战C/C++了,但是因为今天碰到一个问题,还是来看一下。String的定义如下: 代码如下: public final class String { private final char value[]; // 保存的字符串 private final int offset; // 开始的位置 private final int count; // 字符数目 private int hash; // 缓存的hash...
标签: SQLServer
1、插入记录 insert into tableName (myColumn1,myColumn2) values (@myVal1,@myVal2) 2、删除记录 delete from tableName where myColumn=@myVal 3、修改记录 update from tableName set myColmn1=@myVal1 , myColmn2=@myVal2 where myColmn3=@myVal3 4、为表增加列 alter table myTable add myColumn int default 0 5、删除表中的列 ...
1、缺省处理   Oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前 2、使用nvl函数   nvl函数可以将输入参数为空时转换为一特定值,如nvl(employee_name,’张三’)表示当employee_name为空时则返回’张三’,如果不为空则返回employee_name通过这个函数可以定制null的排序位置。 3、使用d...
怎么又是关于Stream的,呵呵,应该说只是最近比较关心程序的效率问题,而我对Stream其实并没有什么特别的研究,只是自己发现了一些新的用法,希望能对大家有用而已。 事情的起因还是那个破烂电子相册软件,今天又发现了一个可改进之处,有一段程序我原来是这么写的: procedure CreateFile(const AFileName:String;const AStream:...

经验教程

217

收藏

71
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部