question on load vs. count(*) counts
Posted in 1992
A programmer at our site created a new table (unisys 5000, sql 4.0.UE2, and SE engine) and then made a flat pipe-separated file with say, 50 records in it. Using sql load command, try to load it into empty table. When the 43rd row had a problem, of course the load halted and a count of successful rows loaded was displayed, and the reason (error) encountered. What we THINK we notice is: If the error is 846 Number of values in load file not equal to # columns, the count displayed is 42, and "select count(*) from table" also yields 42. No problem, right? The error in my load file is on line 43, and sure enough, there it is. Neat debugging tool. But, when the errors was either 391 cannot insert a null into column, or 239 could not iinsert new row - duplicate value in unique index column the count displayed is usually 48 (always a multiple of 16). The error occurs within 16 rows before the displayed count. "select count(*) from table" displays a count of existing rows which is always less than the loader said, but not more than 16 less. In this example it said 48 rows loaded, and the actual select count(*) says 42. Each time we try this we have run delete from table first. Can anyone explain? We also have a call into hotline. Is this a bug in 4.0 UE2? Or are we missing something here? Its easy to work around in an empty table, but not in the real world. Thanks. This BB is really great for quick answers to problems; so much expertise in one place! Thanks in advance. Ann Barnes Letterkenny Army Depot