Forum Stats

  • 3,750,403 Users
  • 2,250,174 Discussions
  • 7,866,966 Comments

Discussions

ALTER CHARACTERSET FROM AR8MSWIN to AL32UTF8

Hello experts, We have a scenario to alter characterset of currently running database. Kindly share your expert opinion to perform this action plan.

DB Version: 12c

Current characterset: AR8MSWIN

Target characterset: AL32UTF8.

Regards,

DBA.

Tagged:

Comments

  • EdStevens
    EdStevens Member Posts: 28,383 Gold Crown
    edited Sep 1, 2021 7:21PM


    This should point you in the right direction - use the DMU tool. Google will be your friend.

    From Oracle 12c onwards the DMU will be the only tool available to migrate to Unicode see <Note 1272374.1> The Database Migration Assistant for Unicode (DMU) Tool.

    (From https://support.oracle.com/knowledge/Oracle%20Database%20Products/260192_1.html)

    User_H8N7I
  • User_H8N7I
    User_H8N7I Member Posts: 2 Green Ribbon

    @EdStevens Thanks for your response. I have confusion about superset & subset to understand. I want to get a clarification if it is possible to migrate AR8MSWIN to AL32UTF8. Is AR8MSWIN a subset of AL32UTF8 OR is AL32UTF8 is superset of AR8MSWIN. I am unable to find/understand compatibility between these two charactersets.

    Q2. Is it possible to convert any characterset to other using DMU ?.


    Thanks.

  • Jason_(A_Non)
    Jason_(A_Non) Member Posts: 2,030 Silver Trophy

    Directly from the document that @EdStevens pointed you to

    The note can be used to go from any NLS_CHARACTERSET to AL32UTF8 / UTF8.

    That means AL32UTF8 is the superset of all the other supported character sets.

    Do you understand the concept of a "subset"? That means all the items of that set are part of a larger set (i.e. the superset).

    Let's pretend the character sets are a set of integers. Let's define AL32UTF8 as a set of integers (positive and negative) between -1000 and 1000. AR8MSWIN is the set of integers from -200 to 200. WE8MSWIN1521 is the set of integers from 0 to 300.

    Both AR8MSWIN and WE8MSWIN1521 are subsets of AL32UTF8. You can convert from either AR8MSWIN or WE8MSWIN1521 to AL32UTF8 (because it knows all the values each contains), but you cannot go the other way because neither of them know how to deal with 750. Similarly you cannot switch between AR8MSWIN and WE8MSWIN1521 because both do not contain -100 or 250.

    User_H8N7I