If only Oracle had a mask like Access. Perhaps you could write a function that started from the right and grabbed 4 digits, and then grabbed the next 3 and inserted a hyphon between the two, and then if there are another three digits enclose in () and if there is a 1 place it in the front. You could even add in logic that says if there isn't an area code then it would become the default area code. you can also look into a third party tool to clean up and format the data.

One such tool is made by a company called 1st Logic. I'm sure there are others.