About LongDataTypeMigration

The Column datatypes "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) datatypes.

This allows for better interoperability between databases and improves performance. If either database vendor elects to completely deprecate (remove) those data types, Siebel CRM customers will not be without a solution.

Basic Usage of LongDataTypeMigration

The purpose of LongDataTypeMigration is to remove obsolete column types from the logical definition in the Repository and 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 Update 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 follows: 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 N/A Because this utility changes the schema, it requires the table owner user name and credentials
/p Table owner Password Yes N/A The table owner's password.
/s Siebel root Yes N/A The root of the Siebel Server installation, such as C:\Siebel\ses\siebsrvr.
/c ODBC Data Source Yes N/A The ODBC Data Source Name (DSN) to connect to the Siebel DB.
/t Table owner Yes N/A In the event that Table owner and Table owner's username do not 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 N/A ORACLE or MSSQL
/a Apply Alter Yes N/A 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) N/A Instructs LongDataTypeMigration to attempt to use "online" conversion.
/x Index tablespace (Oracle only) N/A The default index table space
/y Siebel User (Oracle only) N/A Any Siebel user defined in the application--typically, "SADMIN"
/z Siebel password (Oracle only) N/A Password for the Siebel User.
/b Tablespace (Oracle only) N/A The default data table space
/g SSE_ROLE Yes N/A 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 
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