Problem: Applying Siebel Tables failing erroring out on a DB2 Database
Analysis:
We had created more than 200 new custom columns in S_EVT_ACT table and were trying to apply schema changes to Database. However every time we tried to apply the schema changes it failed with below error.
54010 (-670): [IBM][CLI Driver][DB2/NT] SQL0670N The row length of the table exceeded a limit of "16293" bytes. (Table space "SIEBEL_16K".) SQLSTATE=54010
On Investigation it was found that the table concerned was a part of Table space SIEBEL_16K. There is a restriction on DB2 wherein while introducing new columns DB2 checks if the total length of all the columns added together doesn't exceed the maximum row length limit defined by the tablespace. In our case the total length was exceeding this limit of 16293 for SIEBEL_16K tablespace and hence it was erroring out.
Once the length of various new columns was reduced to a value such that existing as well as the new columns added upto a figure less than 16293, the new columns were created successfully on the DB.
The other possible option also would be to move the table to a larger tablespace, wherein the current table needs to be renamed and a new table with same name needs to be created on a larger tablespace alongwith indexes.
Hope this helps for some one