在一个通过统计查询显示趋势图的页面,原本显示的很正常的图形在接入10g数据库后显示的乱七八糟。-:(
后来终于查明:
In a nutshell, in Oracle 9i, GROUP BY clause gives result in sort order, this behavior has changed from 10g onwards.
The general and Oracle recommendation is, to add the ORDER BY clause in order to have 100% guaranteed order by result.
鉴于对现有应用影响最小的原则:将该排序方法在数据库服务器端停止。 即修改了ORACLE10g的隐含参数:_gby_hash_aggregation_enabled=false,输出的趋势图终于没有问题了。
良好的测试,尤其是优良的测试用例,真的可以让我们自己的应用在上线前避免很多错误,甚至上线后发现问题我们仍然可以比较快速的定位问题。没有什么不可能,错误可以无处不在,并且往往是那些没有被测试或者认真测试过的地方 -:)