现在是有一个系统升级的项目,以前用的是oracle8,升级后用的是oracle10,可是升级后程序执行,相同的SQL语句,在oracle10和oracle8中查询的结果排序是不一样的,由于系统涉及到的SQL较多,有没有在oracle10底层设置,使得oracle10和oracle8中查询结果的排序一致呢,
请各位帮帮忙,在此先谢谢大家了!

解决方案 »

  1.   

    Oracle9i之前,中文是按照二进制编码进行排序的
      

  2.   

    参考一下:http://jidongzheng.itpub.net/post/37572/471898
      

  3.   

    那肯定不一样喽
    记住sql 不加order by 是没有什么默认排序的
    它只是按存放顺序读取出来的如果你存放时是顺序存放的,就会给感觉是排序过的这种情况,在数据导入不同的数据库中会感觉比较明细
    如果是两个全新的数据库,则会基本一样在新的数据库里,假设你的数据是1,2,3,4
    存入顺序也是1,2,3,4
    那读出来也是1,2,3,4而已经用过段时段的,存入顺序可能是这样1,4,2,3
    那你读出来也是1,4,2,3
    实际上数据是一致的你可以看看数据的rowid就知道了
      

  4.   

    关系数据库的原理上来说:数据行之间是无序的。8i里没有order by,或许以前是根据主键排序,到10g  oracle的算法变了,所以顺序不同了