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中判断字段是否为空的坑的更多相关文章

  1. mysql中判断字段为空

    mysql中判断字段为null或者不为null   在mysql中,查询某字段为空时,切记不可用 = null, 而是 is null,不为空则是 is not null   select nulco ...

  2. js判断字段是否为空 isNull

    js判断字段是否为空 isNull   //在js中if条件为null/undefined/0/NaN/""表达式时,统统被解释为false,此外均为true .//为空判断函数f ...

  3. C#中判断DataReader是否为空的代码

    下面的内容是关于C#中判断DataReader是否为空的内容. if(DataReader.HasRows){}

  4. Velocity中判断表达式是不是为空

    Velocity中判断表达式是不是为空 $if ($null.isNull($mycoll) || $mycoll.size()==0) ${}与$!{}区别 例子: ${str}:如果str没有值, ...

  5. sql判断字段是否为空

    sql语句条件查询时,有时会判断某个字段是否为空. 字段内容为空有两种情况 1.为null 2.为字符串的空'' 语句如下: select * from table where column is n ...

  6. java中判断list是否为空的用法

    1.如果想判断list是否为空,可以这么判断: if(null == list || list.size() ==0 ){ //为空的情况 }else{ //不为空的情况 } 2.list.isEmp ...

  7. js中判断json是否为空

    var jsonStr ={}; 1.判断json是否为空 jQuery.isEmptyObject(): 2.判断对象是否为空: 1.if   (typeOf(x)   ==   "und ...

  8. Java中判断对象是否为空的方法

    首先来看一下工具StringUtils的判断方法:    一种是org.apache.commons.lang3包下的:    另一种是org.springframework.util包下的.这两种S ...

  9. smarty中判断数组是否为空的方法

    1,用count来取得数组的下标个数 下面例子中,如果$array为空则不输出任何数据 以下为引用的内容:{if $array|@count neq 0 }... ...{/if} 2,直接来判断 以 ...

随机推荐

  1. 【网络】RFC1245-OSPF Protocol Analysis

    OSPF协议分析 摘要 这是OSPF协议的两份报告中的第一份,这些报告是因特网工程指导组要求的,是用来将一个因特网协议写成标准草案的.OSPF是一个TCP/IP协议族中的一个的路由协议,被设计用于一个 ...

  2. Robot Framework Chrome

    1. 下载对应版本的chromedriver, 好像都是windows32位的,不过没关系,可以用即可. 2. 将chromedriver放入到chrome的安装路径下,然后将chromrdriver ...

  3. 代码合并:Merge、Rebase 的选择

    图解 Git 命令 基本用法 上面的四条命令在工作目录.stage 缓存(也叫做索引)和 commit 历史之间复制文件. git add files 把工作目录中的文件加入 stage 缓存 git ...

  4. document.onclick在ios上不触发的解决方法与touchstart点击穿透处理

    document.onclick = function (e) { var e = e ? e : window.event; var tar = e.srcElement || e.target; ...

  5. Django 1.10中文文档-第一个应用Part5-测试

    本教程上接教程Part4. 前面已经建立一个网页投票应用,现在将为它创建一些自动化测试. 自动化测试简介 什么是自动化测试 测试是检查你的代码是否正常运行的行为.测试也分为不同的级别.有些测试可能是用 ...

  6. linux下实现在程序运行时的函数替换(热补丁)【转】

    转自:http://www.cnblogs.com/leo0000/p/5632642.html 声明:以下的代码成果,是参考了网上的injso技术,在本文的最后会给出地址,同时非常感谢injso技术 ...

  7. vs 预编译命令行

    xcopy "$(SolutionDir)\Transight_FY_DataExchange_UI\CuscapiUpdaterServer.xml"  /i /d /y

  8. api文档工具

    平台选型         Apidoc         文档参考:http://apidocjs.com        优点      文档齐全,操作简单,ui清晰,代码注解查询性强,语言支持多元化, ...

  9. 设置Eclipse/MyEclipse中编辑界面点击任何文件后Package Explorer导航自动定位该文件

    原文:http://www.myexception.cn/eclipse/425836.html 设置步骤: 导航Package Explorer的右上角有一个黄色双向箭头图标,鼠标移动到上面提示“L ...

  10. CF633F The Chocolate Spree

    Description Alice and Bob have a tree (undirected acyclic connected graph). There are \(a_{i}\) choc ...