Solving Convertible or Lossy data in Data Dictionary objects reported by Csscan when changing the NLS_CHARACTERSET
(Doc ID 258904.1)
Last updated on OCTOBER 20, 2023
Applies to:
Oracle Database - Standard Edition - Version 8.0.3.0 to 11.2.0.4 [Release 8.0.3 to 11.2] Oracle Database Cloud Schema Service - Version N/A and later Oracle Database Exadata Express Cloud Service - Version N/A and later Oracle Database Backup Service - Version N/A and later Oracle Database - Enterprise Edition - Version 8.0.3.0 to 11.2.0.4 [Release 8.0.3 to 11.2] Information in this document applies to any platform.
Purpose
You are planning to convert the database character set from one character set to another set (for example to AL32UTF8) .
And you used Csscan and found some "Convertible" or "Lossy" in Data Dictionary objects and plan on using using ALTER DATABASE CHARACTER SET or Csalter. This note tries to give a overview of the most commonly seen "Convertible" and "Lossy" in Data Dictionary objects and how to handle these when using ALTER DATABASE CHARACTER SET / Csalter.
Note that "Convertible" in Data Dictionary objects is NOT a problem when using export/import into a new / other database.
A list of notes in changing the NLS_CHARACTERSET is provided in <Note 225912.1> Changing the Database Character Set ( NLS_CHARACTERSET )
Please do note that: * Before changing the NLS_CHARACTERSET using Csalter or Alter Database..." it's mandatory to use Csscan. We strongly suggest to read <Note 444701.1> Csscan output explained * some actions in this note use the csscan "exclude" option, the list of table NEEDS to be between ( ) and on most Unix shells it need ' ' around the list of tables. Example: on windows use EXCLUDE=(owner.table,owner.table) , on unix platforms use EXCLUDE='(owner.table,owner.table)'. to avoid this one can use a parameter file for csscan, see <Note 444701.1> Csscan output explained , section " E) Do I need to always run a full database scan? / The Csscan EXCLUDE , USER or TABLE parameters do not appear to work." * some selects in this note use the rowid 's stored by csscan in "data_rowid" column of the csmig.csmv$errors table, if such a select give "ORA-01410: invalid ROWID" then this simply means that since the csscan some rows where removed in the object scanned. If this happens simply re-scan the table in question.
Scope
Any DBA who has "Convertible" or "Lossy" in Data Dictionary objects while using ALTER DATABASE CHARACTER SET or Csalter.
Details
To view full details, sign in with your My Oracle Support account.
Don't have a My Oracle Support account? Click to get started!