About LongDataTypeMigration

The column data types LONG on Oracle and the equivalent TEXT on Microsoft SQL Server have been deprecated for years. The LongDataTypeMigration library is provided to convert any remaining LONG/TEXT columns in your database to the modern CLOB/VARCHAR (max) data types.

Converting these columns from LONG/TEXT to CLOB/VARCHAR enhances cross-database compatibility and can improve overall database performance. Additionally, should either database vendor fully deprecate and remove support for these legacy data types in the future, Siebel CRM customers will have a supported and sustainable alternative in place.

Using the LongDataTypeMigration Library

The LongDataTypeMigration library lets you remove obsolete column types from the logical definition in the repository and in the physical copy as defined in the database. Examples of this include:

  • Executes solely in Development ("DR") environments.
    • Migration will migrate the changes downstream
  • Leverages DDLIMP, so changes will be applied without a requirement for downtime.
  • Executes on customer demand – expected to be a one-time task.
Important: It's recommended that you do not run the LongDataTypeMigration utility until all downstream environments are on at least Siebel Release 26.3. The reason for this is that, until that release, the DDLIMP utility can't perform online table changes, resulting in possible downtime while all LONGs are converted to CLOBs.
LongDataTypeMigration is implemented as compiled java inside the file LongDataTypeMigration.jar in the Siebel Server bin folder and is executed as:
  • java LongDataTypeMigration.jar /u Username /p Password....

This table shows the full list of the parameters available for the utility:

Flag Parameter Required Default Description
⁄u Table owner Username Yes NA Because this utility changes the schema, it requires the table owner user name and credentials.
/p Table owner Password Yes NA The table owner's password
/s Siebel root Yes NA The root of the Siebel Server installation, such as C:\Siebel\ses\siebsrvr
/c ODBC Data Source Yes NA The ODBC Data Source Name (DSN) to connect to the Siebel DB
/t Table owner Yes NA If Table owner and Table owner's user name don't match, such as in MSSQL where the Table owner might be "dbo", but the Table owner user is "SIEBEL"
/l Log directory No <Siebel root>\log Where the log files should be saved. If not passed, by default, logs will be created in <Siebel root>\log directory
/d Database Platform Yes NA ORACLE or MSSQL
/a Apply Alter Yes NA Whether the utility should execute the DDL to modify the LONGs to CLOBs or stop after generating the SQL, allowing the DBA to run it asynchronously
/r Repository Name No Siebel Repository The name of the Siebel Repository to inspect and update. If there are spaces, you must put the name in quotes, such as "Siebel Repository"
/~ Online clause (Oracle only) NA Instructs LongDataTypeMigration to attempt to use "online" conversion.
/x Index tablespace (Oracle only) NA The default index table space
/y Siebel User NA NA Any Siebel user defined in the application--typically, "SADMIN"
/z Siebel password NA NA Password for the Siebel User
/b Tablespace (Oracle only) NA The default data table space
/g SSE_ROLE Yes NA The SSE_ROLE grantee
/w LANG_CD No ENU The Primary language code
/UNICODEDB UNICODEDB No Y Y. Drives Oracle /w and MSSQL /z behavior

Examples

MSSQL:
java -jar LongDataTypeMigration.jar /s $SIEBEL_ROOT\siebsrvr /u 
SIEBEL /p ********* /t dbo /c siebelInstall_DSN /d MSSQL /l $SIEBSRVR_ROOT\log /a 
Y /r "Siebel Repository"   /g SSE_ROLE /w FRA /UNICODEDB Y /y SADMIN /z ******** /g SSE_ROLE
Oracle:
java -jar LongDataTypeMigration.jar /s $SIEBEL_ROOT\siebsrvr /u 
SIEBEL /p ******** /t SIEBEL /c siebelInstall_DSN /d ORACLE /l $SIEBEL_ROOT\siebsrvr\log /a Y /r "Siebel Repository" /~ Y /x INDX /y 
SADMIN /i ******** /b DATA /g SSE_ROLE   /w FRA /UNICODEDB Y