Thanks for all of the suggestions. Once we actually have an application (I'm beginning to start on that now after 8 years of data cleanup), the separate table and trigger mechanism would probably work best for user interaction. I'll have to experiment when I get to that point. As it is right now, I need a simple way of allowing most spreadsheet = data (which myself and one other guy have to load) to get into the database, = so user-friendly handling and error messages aren't that important. So, as a quick fix, that works, I created the unique index with a = decode. (The asktom site said the decode was quicker than case). Being out of production DBA and development for 8 years, I'm behind the times and starting to play catch-up, and I was thinking that a unique index had to have all indexed columns be unique, I didn't realize that nulls were more or less ignored (and also makes a smaller index). ------------------------------------------------------------ Bill Ferguson U.S. Geological Survey - Minerals Information Team PO Box 25046, MS-750 Denver, Colorado 80225 Voice (303)236-8747 ext. 321 Fax (303)236-4208 ~ Think on a grand scale, start to implement on a small scale ~ -- //www.freelists.org/webpage/oracle-l