Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java =================================================================== diff -u -r16144 -r17108 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java (.../ContainerManagerImpl.java) (revision 16144) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java (.../ContainerManagerImpl.java) (revision 17108) @@ -194,7 +194,10 @@ if(dbConnection.isSqlServer()){ condition = " and CONVERT(numeric,containerName) > CONVERT(numeric,'"+Container.CONTAINER_CURRENT_VIRTUAL+"')"; }else if(dbConnection.isOracle()){ - condition = " and to_number(containerName) > to_number('"+Container.CONTAINER_CURRENT_VIRTUAL+"')"; + //由于oracle的过滤机制与sqlserver不一致,sqlserver后面的过滤机制是从过滤完条件1后,条件2是在条件1已过滤出来的结果中过滤,oracle都是全局中过滤 + //condition = " and to_number(containerName) > to_number('"+Container.CONTAINER_CURRENT_VIRTUAL+"')"; + condition = " and to_number('"+Container.CONTAINER_CURRENT_VIRTUAL+"') < " + + "case when length(translate(containerName,'0123456789'||containerName,'0123456789')) = length(containerName) then to_number(containerName) else 0 end"; } }