Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java =================================================================== diff -u -r27880 -r27883 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 27880) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 27883) @@ -703,8 +703,23 @@ sqlList.add(updateSql); // 物品科室共用配置GoodsDepartShareConfig - updateSql = String.format("update GoodsDepartShareConfig set departNames = %s where %s;", replaceSql, condition); - sqlList.add(updateSql); + if(dbConnection.isOracle()){ + String replaceSql1 = ""; + replaceSql1 += " case when departNames like '" + tempOldOrgName + "'"; + replaceSql1 += " then '" + tempNewOrgName + "'"; + replaceSql1 += " else case when departNames like '" + tempOldOrgName + ";%'"; + replaceSql1 += " then replace(departNames, '" + tempOldOrgName + ";', '" + tempNewOrgName + ";' )"; + replaceSql1 += " else case when departNames like '%;" + tempOldOrgName + ";%'"; + replaceSql1 += " then replace(departNames, ';" + tempOldOrgName + ";', ';" + tempNewOrgName + ";' )"; + replaceSql1 += " else case when departNames like '%;" + tempOldOrgName + "'"; + replaceSql1 += " then replace(departNames, ';" + tempOldOrgName + "', ';" + tempNewOrgName + "' )"; + replaceSql1 += " else '' end end end end "; + updateSql = String.format("update GoodsDepartShareConfig set departNames = %s where %s;", replaceSql1, condition); + sqlList.add(updateSql); + } else { + updateSql = String.format("update GoodsDepartShareConfig set departNames = %s where %s;", replaceSql, condition); + sqlList.add(updateSql); + } if(CollectionUtils.isNotEmpty(sqlList)){ for (String sql : sqlList) {