This is the recent problem that I faced while applying and activating column on a Table. The table in picture was S_SRV_REQ.
Problem:
While applying column on the Service Request table we receive error the error given below.
ORA-01754 – Table cannot have more than one long column.
I don’t have the exact error message right now. It was pretty long and uncomprehensive error but in simple words it was the error mentioned above
We checked but there wasn’t even a single column with data type as Long. So, there was no reason this error should occur but it was coming.
Solution:
After some analysis what we found out was that there were several columns that were recently created and there 3 of them had type as Varchar and lenght as 2500
This problem could be solved by
- Making the column have length more than 2500 as inactive
- Reduction in the column length from 2500 to 2000
Reason:
It seems that when we define Varchar column length more than 2000 characters in Siebel it is treated as long at database level due to which oracle constraint of having only 1 long column on table comes into the picture hence ORA-01754 error .

1 Comment at "ORA-01754 – Siebel Varchar data type length issue."
Hi
Please note that Siebel don’t support Varchar columns with length more than 2000.
But there is a workaround for this. Try this if you need a column with length more than 2000.
Though I have not done the following steps myself, I know it works because one of my collegue have implemented it for our project.
1. Extend a column in Siebel with Varchar(2000) & Apply the changes to DB. We had extended S_EVT_ACT.
2. Modify the length in Oracle/ database level using Alter table command (Maximum we had specified is 4000) and Insert at least one record with value having 4000 characters.
3. Now change the length in Table Object in Siebel as well from 2000 to 4000.
I think we need to do the step 3 everytime after doing DDLSynch because Siebel may reset length from 4000 back to 2000
Comment Now!