oracle10g中判断字段是否为空的坑
RT,在oracle中,写SQL时,假设这个字段为STA Char(3),判断这个字段是否为空一般都是这两个:STA = '' or STA is null
但是今天这两种方法失效了,无论是STA = '' 还是STA is null 都无法查询到那笔记录。到数据库一看,该字段的确为空,但是由于这个字段是CHAR类型的,所以多了3个空格。
既然有空格那么用:trim(STA) = '' 这个条件能查到吗?还是不行。没办法了,那么只能用:STA = ' '(注意中间有个空格) 这个条件能查了,果然能查到。
猜测可能是因为STA字段是Char字段的原因,由于有空格导致需要用 STA = ' ' 来查询,但我又找了一个Varchar2 类型的字段 NAME Varchar2(32),这个空字段就没有空格了,然后使用:NAME = '' or NAME is null or trim(NAME ) = ''
还是查不到,还是得用 NAME = ‘ ’(注意中间有个空格)来查询。
我的数据库版本是:10.0.2 在11g也没有遇见过这种情况,想来是oracle10g的BUG,希望大家在判断字段是否为空的时候使用这种形式:STA = '' or STA is null or trim(STA ) = '' or STA = ' '
避免无法判断的情况。
PS:还有后续,我后面使用for update 把这个STA字段清空了,然后使用:STA = '' or STA = ' ' 又不能查询到这笔记录了,还得使用:STA is null 才行。
简直坑。
oracle10g中判断字段是否为空的坑的更多相关文章
- mysql中判断字段为空
mysql中判断字段为null或者不为null 在mysql中,查询某字段为空时,切记不可用 = null, 而是 is null,不为空则是 is not null select nulco ...
- js判断字段是否为空 isNull
js判断字段是否为空 isNull //在js中if条件为null/undefined/0/NaN/""表达式时,统统被解释为false,此外均为true .//为空判断函数f ...
- C#中判断DataReader是否为空的代码
下面的内容是关于C#中判断DataReader是否为空的内容. if(DataReader.HasRows){}
- Velocity中判断表达式是不是为空
Velocity中判断表达式是不是为空 $if ($null.isNull($mycoll) || $mycoll.size()==0) ${}与$!{}区别 例子: ${str}:如果str没有值, ...
- sql判断字段是否为空
sql语句条件查询时,有时会判断某个字段是否为空. 字段内容为空有两种情况 1.为null 2.为字符串的空'' 语句如下: select * from table where column is n ...
- java中判断list是否为空的用法
1.如果想判断list是否为空,可以这么判断: if(null == list || list.size() ==0 ){ //为空的情况 }else{ //不为空的情况 } 2.list.isEmp ...
- js中判断json是否为空
var jsonStr ={}; 1.判断json是否为空 jQuery.isEmptyObject(): 2.判断对象是否为空: 1.if (typeOf(x) == "und ...
- Java中判断对象是否为空的方法
首先来看一下工具StringUtils的判断方法: 一种是org.apache.commons.lang3包下的: 另一种是org.springframework.util包下的.这两种S ...
- smarty中判断数组是否为空的方法
1,用count来取得数组的下标个数 下面例子中,如果$array为空则不输出任何数据 以下为引用的内容:{if $array|@count neq 0 }... ...{/if} 2,直接来判断 以 ...
随机推荐
- [LeetCode] 14. Longest Common Prefix ☆
Write a function to find the longest common prefix string amongst an array of strings. 解法: 广度优先搜索:先比 ...
- 【C++ STL】Stack
1.定义 class stack<> 实作出一个stack(也成为LIFO,后进先出),你可以使用push()将任意数量的元素置入stack中,也可以使用pop()将元素依次插入次序反序从 ...
- 两台linux服务器之间免密scp,在A机器上向B远程拷贝文件
两台linux服务器之间免密scp,在A机器上向B远程拷贝文件 操作步骤:1.在A机器上,执行ssh-keygen -t rsa,一路按Enter,不需要输入任何内容.(如有提示是否覆盖,可输入y后按 ...
- 一道lambda表达式题目
#include <iostream> #include <functional> using namespace std; auto Pair = [](auto u, au ...
- 取石子游戏 HDU2516(斐波那契博弈)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2516 题目: Problem Description 1堆石子有n个,两人轮流取.先取者第1次可以取任 ...
- Android控件——AutoCompleteTextView与MultiAutoCompleteTextView(实现自动匹配输入的内容)
------------------------------------AutoCompleteTextView----------------------
- mssql手工注入2
--+ 先说一些函数的说明: substring(str,start,len) 截取字符串的作用,第一个参数为要截取的字符串,第二个参数为从哪里开始截取,第三个参数为截取的长度 ascii(char) ...
- docker使用小记
查看当前镜像:docker images 运行一个简单的镜像:docker run hello-world 拉取一个远程docker:docker pull centos docker中安装nginx ...
- 【Python学习】Jupyter解决单个变量输出问题
使用Jupyter的时候有时候发现,我明明写了好几个变量打印,但是它只显示最后一个.Out只有一个. 但是使用下面的语句.就可以实现多个输出. from IPython.core.interactiv ...
- 以下suse11.3x64可以安装pycrypto-2.6.1
rpm -qa adaptec-firmware-1.35-2.15.4gnome-menus-branding-SLED-11.1-14.26man-pages-3.15-2.23.1crackli ...