SQL error 245 ISAM 103
Posted in 1994
}From: geneder@teleport.com (Gene Dershewitz) }I have an Online 4.00 system running under SCO Unix that has an index p }During an update of a single column in a table, the system ran out of l }This update was done from ISQL without locking the table exclusively (d }serious lapse in my memory of what could happen). The following error }reported: }245: Could not position within a file via an index. }103: ISAM error: illegal key descriptor (too many parts or too long) }I ran tbcheck -ci on the table and it reported a problem with the index }could not fix it. When this has happened in the past (infrequently), I }resorted to unloading the table data, dropping the table, recreating th }table, turning off logging, reloading the data, backing up the database }turning on logging. Unforturnately this table is many MB and over 600K }records and the process ends up costing system downtime. }I guess my question is: Is there a way to fix this corruption without }resorting to unloading data and rebuilding??? Please let me know if yo }any magical helpful hints. I know I will be raising (substantially) th }number of locks on the system. }Thanks, }Gene Dershewitz }geneder@teleport.com This error sounds familiar. If you run finderr 103, it tells you "this error will never occur with Online." I'd be willing to bet that if you drop and recreate the index, it will fix it until you try to update the table again from a C program--for some reason 4gl programs don't seem to cause it. Updating statistics may also appear to fix it for a while. We called Informix support, and gave them a lot of details about the problem, including the fact that there was an update trigger that used a stored procedure. They asked if the stored procedure joined two tables, and said that we needed to make sure that any columns used in the join needed to be indexed. We added an index, and the problem disappeared. I hope this helps.