title: Oracle migrate from WE8ISO8859P1 to UTF-8 character encoding for schema table objects only
body: <p>The current encoding of oracle instance is WE8ISO8859P1 and needs to be moved to UTF-8. I have found some challenges in my database instance due to its current setup and requirements of my business. </p>
  
  <p>This instance in question has 100+ schema users with number of tables created under each schema. We can say logically each schema exists for application or specific system within the enterprise. The requirement is to move only certain schema and their table objects to new character set of UTF-8. </p>
  
  <p>Also, remember the reason for this migration right now is compliance with Restful POST calls that will perform CRUD operations in UTF format.</p>
  
  <p>NLS_NCHAR_CHARACTERSET- AL16UTF16
  NLS_CHARACTERSET- WE8ISO8859P1</p>
  
  <p>I did do some research earlier and here are my findings.</p>
  
  <p>• Oracle doesn’t support character encoding at the tablespace , table or column level. Therefore options start reducing for any charset migration strategy at schema level only.</p>
  
  <p>• We have CRUD calls by other enterprise legacy systems to this schema. Therefore should not have a any wider impact. Off course, other schema's in this instance doesn't have any requirements of UTF-8.</p>
  
  <p>The only way I see a solution is </p>
  
  <p><strong>OPTION 1</strong> - Move the target schema and thier objects into new database instance with NLS_LANGUAGE to be UTF-8.</p>
  
  <p><strong>OPTION 2</strong> - Converting all the relevant columns to NCHAR and NVARCHAR but with loss of length and truncation. </p>
  
  <p>Both the approaches lead to big impact and not able to conclude what is best. Any suggestions are welcome that solves my charset migration without impact and changes to other schema in the instance.</p>