I always thought the external table functionality was a terrible idea, but if the use case is just for import that's more reasonable. Don't you like SQL*Loader or something ;)
It's great when you need to whip something up quickly. My workflow was to create foo_ext, poke around at the data and get some sensible column defaults, then `create table foo select * from foo_ext`. Worked really well, especially for once-off or infrequent stuff.
For batch-oriented stuff where you're getting pretty consistent data at a regular interview I'd go with SQL*Loader.
For batch-oriented stuff where you're getting pretty consistent data at a regular interview I'd go with SQL*Loader.