When loading data into Siebel through EIM, we do perform Data cleansing/massaging as per our  business requirement. The cleansed data from Source is then loaded into the target EIM  Interface tables  Scenario:Convert multiple spaces in address related columns to a single space for all records  dynamically. Please refer the example cited below,
| SOURCE | TARGET | 
| 82 DEVONSHIRE ST | 82 DEVONSHIRE ST | 
| 2245 OBSERVATORY PL | 2245 OBSERVATORY PL | 
| 2245 OBSERVATORY PL NW | 2245 OBSERVATORY PL NW | 
Oracle built in functions like replace , decode and translate was not yielding the desired result due to search complexity. Writing a custom procedure / function to do this address cleansing will be tedious and complex process, as it has to cleanse all records dynamically. Implementation : We have an OOB solution for this by using the regular expression (REGEXP_REPLACE) function provided by Oracle from 10g version which improves the ability to search and manipulate character data. Syntax : SELECT ADDR AS SOURCE,REGEXP_REPLACE(ADDR,'( ){2,}', ' ') AS TARGETFROM SIEBEL.S_ADDR_PER WHERE PER_ID IN ('1-23O0-1625','1-G8FU-133')