日期:2014-05-16  浏览次数:20345 次

Oracle内部代码错误

今天遇到的这问题也确实蛮奇怪的,见下图,网上也有很多关于这个问题的文章: ?


?

关于这个问题的说法很多,解决的方案也有很多种建议,到底哪种可行,还是得亲自实践才行,看了很多解决的方案,数据库版本问题、重新建库.....不过这些也不是随意能试验的,毕竟这个操作还是有点危险性的。既然不行,那就只能从SQL语句本身着手了,因为是在原先的SQL再增加一张表的关联还有一个where条件的增加,表关联肯定是没问题,那问题只可能出在where条件上了,coltime是char类型的。

?

coltime = '201111'
?

?

?把这个条件去掉,嘿,SQL正常执行没有任何问题,一加上就会报错,很纳闷,难道这个还有什么问题?实在想不到哪里错了,于是就把引号去掉试试看

?

coltime = 201111
? ?

咦,奇迹发生了,SQL居然能够正常执行,也不报错了,惊喜之余又感觉很奇怪。为什么char类型就不需要 ' 了,想不通。于是建了张表测试下char类型,发现char类型作为查询条件不管加不加'号都是可以的。我用的是Oracle 9i测试的,公司的是Oracle 10g,难道是版本的问题导致这个问题,搞不明白。期待高手解答了,但是能够解决也算是件好事。 不过还是得继续把这个问题搞清楚才行,继续查资料,看看到底有啥说法。