在我们日常写程序的时候,往往会忽视空格的存在, 就是因为一个小小的空格,甚至会让我们花费大量的时间去调试,查找原因,百般的苦恼!如果我们心中能够为空客留有一席之地的话,那么这些苦恼自然也就不存在了!
记得之前在写oracle存储过程的时候,为此可让我大伤脑筋!在表字段中存在了一个空格,在pl/sql developer 工具的sql window 中直接写sql语句是没有问题的,是有值的,可是在把它放到package中使用静态游标来打开这段sql语句,就是没有记录!如果把它换种写法,使用动态的游标,莫名其妙的就好了,乌呼,无法可想!
无奈之下,使用了trim函数,问题解决的!查查表看看,没错,有一个可爱又可恨的空格在里面,悠哉悠哉……
上帝经常会惩罚那些没有记性的人,我就其中一个!嘿嘿……
还有一次是排序操作,比如说按照升序,ABC应该排在ABCD之前的,可是我的排序死活就排到前边了,按照降序排,它死活排在后面!测试人员跟我急,还写了sql语句给我看,目的是证明他是对的!我想这种事情不用证明他都是对的!我还在想不可能是oracle出问题了吧, 这一闪念的想法瞬间消灭了踪影,我的数据库一直运行正常!真的是没有办法了,查查数据吧,也许问题就在这呢!
果真不错,ABC后面有个全角空格,Oracle中的排序是按照ascii码排的,一个全角空格的ascii码是33088,而D的ascii码是68,原来又被上帝玩了……
像这档子事儿,还有很多,只要留心,平时多注意,有很多问题都不能称之问题了!