Database Character Set Change

Hi,
I am trying to change my database's(9i) character set US7ASCII to UTF8 .
There are some tables having CLOB columns which are stopping this from happening .
So I exported all those tables having CLOB columns and truncated them .
But there are some views also which have CLOB columns which are restricting me from changing the characterset further.
Any help will be appreciated.
Thanx

Hi,
I used the following after export and truncate of tables containing CLOB columns .
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE CHARACTER SET UTF8;
SQL> ALTER DATABASE CHARACTER SET UTF8;
ALTER DATABASE CHARACTER SET UTF8
ERROR at line 1:
ORA-12716: Cannot ALTER DATABASE CHARACTER SET when CLOB data exists
Pls help me out.
Thanx

Similar Messages

  • How to review implication of database character set change on PL/SQL code?

    Hi,
    We are converting WE8ISO8859P1 oracle db characterset to AL32UTF8. Before conversion, i want to check implication on PL/SQL code for byte based SQL functions.
    What all points to consider while checking implications on PL/SQL code?
    I could find 3 methods on google surfing, SUBSTRB, LENGTHB, INSTRB. What do I check if these methods are used in PL/SQL code?
    What do we check if SUBSTR and LENGTH functions are being used in PL/SQl code?
    What all other methods should I check?
    What do I check in PL/SQL if varchar and char type declarations exist in code?
    How do i check implication of database characterset change to AL32UTF8 for byte bases SQL function.
    Thanks in Advance.
    Regards,
    Rashmi

    There is no quick answer.  Generally, the problem with PL/SQL code is that once you migrate from a single-byte character set (like WE8ISO8859P1) to a multibyte character set (like AL32UTF8), you can no longer assume that one character is one byte. Traditionally, column and PL/SQL variable lengths are expressed in bytes. Therefore, the same string of Western European accented letters may no longer fit into a column or variable after migration, as it may now be longer than the old limit (2 bytes per accented letter compared to 1 byte previously). Depending on how you dealt with column lengths during the migration, for example, if you migrated them to character length semantics, and depending on how relevant columns were declared (%TYPE vs explicit size), you may need to adjust maximum lengths of variables to accommodate longer strings.
    The use of SUBSTR, INSTR, and LENGTH and their byte equivalents needs to be reviewed. You need to understand what the functions are used for. If the SUBSTR function is used to truncate a string to a maximum length of a variable, you may need to change it to SUBSTRB, if the variable's length constraint is still declared in bytes.  However, if the variable's maximum length is now expressed in characters, SUBSTR needs to be used.  However, if SUBSTR is used to extract a functional part of a string (e.g. during parsing), possibly based on result from INSTR, then you should use SUBSTR and INSTR independently of the database character set -- characters matter here, not bytes. On the other hand, if SUBSTR is used to extract a field in a SQL*Loader-like fixed-format input file (e.g. read with UTL_FILE), you may need to standardize on SUBSTRB to make sure that fields are extracted correctly based on defined byte boundaries.
    As you see, there is universal recipe on handling these functions. Their use needs to be reviewed and understood and it should be decided if they are fine as-is or if they need to be replaced with other forms.
    Thanks,
    Sergiusz

  • Changing database character set

    Can anyone help with the way to change the database character set.
    I am runn into problem while exporting with error message exp-00091
    Thanks

    You don't need to change the database character set. You have only to set the correct character set at
    OS level before doing the export. Execute the following at Sql prompt as DBA :
    SQL> select * from v$nls_parameters
      2* where parameter in ('NLS_LANGUAGE', 'NLS_TERRITORY', 'NLS_CHARACTERSET')
    SQL> /
    PARAMETER            VALUE
    NLS_LANGUAGE         AMERICAN
    NLS_TERRITORY        AMERICA
    NLS_CHARACTERSET     WE8ISO8859P15
    SQL>then at OS prompt :
    $ export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15
    $ exp ..............
    Of course you have to use your values.

  • Changing database character set from US7ASCII to AL32UTF8

    Our database is running on Oracle database 10.1.0.4.0 (AIX) The following are its parameters:
    SQL> select value from NLS_DATABASE_PARAMETERS where parameter='NLS_CHARACTERSET';
    VALUE
    US7ASCII
    We would like to change the database character set to AL32UTF8. After following Metalink notes: 260192.1 (which helped us resolve "Lossy" and "Truncated" data, the final output of the CSSCAN utility is:
    [Scan Summary]
    All character type data in the data dictionary are convertible to the new character set
    All character type application data are convertible to the new character set
    [Data Dictionary Conversion Summary]
    The data dictionary can be safely migrated using the CSALTER script
    We have no (0) Truncation and Lossy entries on the .txt file. We only have Changeless and Convertible. Now accdg to the documentation, we can do a FULL EXP and FULL IMP. But it did not detail how to do the conversion on the same database. The discussion on the document tells how to do it from one database to another database. But how about on the same database?
    We cannot use CSALTER as stated on the document.
    (Step 6
    Step 12
    12.c) When using Csalter/Alter database to go to AL32UTF8 and there was NO "Truncation" data, only "Convertible" and "Changeless" in the csscan done in point 4:)
    After performing a FULL export of the database, how can we change its character set? What do we need to do the the existing database to change its character set to AL32UTF8 before we import back our dump file into the same database?
    Please help.

    There you are! Thanks! Seems like I am right in my understanding about the Oracle Official Documentation. Thanks!
    Hmmmmm...when you say:
    *"you can do selective export of only convertible tables, truncate the tables, use CSALTER, and re-import."*
    This means that:
    1. After running csscan on database PROD, i will take note of the convertible tables in the .txt output file.
    2. Perform selective EXPORT on PROD (EXP the convertible tables)
    3. Truncate the convertible tables on PROD database
    4. Use CSALTER on PROD database
    5. Re-import the tables into PROD database
    6. Housekeeping.
    Will you tell me if these steps are the correct one? Based on our scenario: This is what i have understood referring to the Official Doc.
    Am i correct?
    I really appreciate your help Sergiusz.

  • Want to change Database Character set

    I have installed Oracle 10g in my system.
    But while installing Oracle 10g i have selected the Database Character set as English but now i want it to change it to West European WE8MSWIN1252
    can anyboby suggest how to modify it.

    http://oracle.ittoolbox.com/documents/popular-q-and-a/changing-the-character-set-of-an-oracle-database-1601
    Best Practices
    http://www.oracle.com/technology/tech/globalization/pdf/TWP_Character_Set_Migration_Best_Practices_10gR2.pdf

  • How to change Database character set?

    Hi,
    We are planning to make a clone of production Database which has:
    select value$ from sys.props$ where name='NLS_CHARACTERSET';
    AL32UTF8
    We have set up a new server for that purpose and installed database, but by default it has
    select value$ from sys.props$ where name='NLS_CHARACTERSET';
    WE8ISO8859P1
    So after making full import from full backup file we have some broken character in database.
    How can I change from WE8ISO8859P1 to AL32UTF8?
    I expect that I need to shutdown the clone database or even make from scratch full import.
    Thanks

    I made a full backup from production database which has AL32UTF8
    My new database is fresh and it has WE8ISO8859P1
    I think the reason why I'm having some corrupted characters is because of difference in Character set between two database, right?
    so I will need to change new database Character set to AL32UTF8 then make again full import.

  • Change Database Character Set to Arabic!

    Dear All,
    My database is Oracle 11gR2 On Linux platform.
    I am trying to change the character set of my database to store Arabic characters.
    This is what I am doing:
    SHUTDOWN IMMEDIATE;
    STARTUP MOUNT;
    ALTER SYSTEM ENABLE RESTRICTED SESSION;
    ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
    ALTER SYSTEM SET AQ_TM_PROCESSES=0;
    ALTER DATABASE OPEN;
    ALTER DATABASE CHARACTER SET INTERNAL_USE AR8ISO8859P6;
    SHUTDOWN IMMEDIATE;
    STARTUP;
    When i check:
    SQL> select value from NLS_DATABASE_PARAMETERS where parameter='NLS_CHARACTERSET';
    VALUE
    AR8ISO8859P6
    But still when i query data it shows it like this:
    "¿¿¿¿¿¿ç ¿¿ê ¿¿¿¿çê¿ ¿¿¿¿ ¿¿¿ ¿¿¿¿¿¿ ¿¿¿¿ ¿¿¿èê¿ ¿¿¿è¿ ¿¿¿¿ê¿¿ ¿¿¿ ¿¿â¿¿ ¿¿é ¿¿¿ è¿¿¿ ¿ê ¿¿¿¿ êè¿ ¿¿¿¿¿¿ 28/9 ¿ê ¿ ¿¿é ¿¿¿¿ ¿è¿¿ê èç¿¿¿ ¿è¿¿¿ âê¿¿ ¿¿¿ è¿¿â¿ ¿¿è¿"
    Can you help me to understand where is the problem and how to get through it.
    Regards, Imran

    Why on earth are you using the undocumented INTERNAL_USE command? The name alone should strongly imply that this isn't something that normal users should be playing with. It is extremely likely that you've corrupted your database.
    Do you have a backup of your database taken before you corrupted it? If so, can you restore that backup? Once you do that, tell us what character set you're starting with. If you are implying that there is existing data in the database, what character set is that data encoded with? Can you DUMP the data to verify this?
    Justin

  • Changing the Database Character Set  From WE8MSWIN1252 to AR8MSWIN1256

    good morning everybody,
    I need your help to know all step which it is necessary to follow to change the Database Character Set From WE8MSWIN1252 to AR8MSWIN1256
    thank you

    If you have not already done so, read up on Character Set Migration and using the CSSCAN tool to verify the database before making any changes.

  • How to alter database character set from AL32UTF8 to EE8MSWIN1250

    Hi folks,
    I'm using an Oracle 10g, XE database, which has a database character set set to AL32UTF8, what causes that some characters like "č ť ř ..." are not displayed.
    To fix this issue, I would like to change it to EE8MSWIN1250 character set as it's set on server.
    Unfortunatelly below steps don;t work for me:
    connect sys as sysdba;
    SHUTDOWN IMMEDIATE;
    STARTUP MOUNT;
    ALTER SYSTEM ENABLE RESTRICTED SESSION;
    ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
    ALTER SYSTEM SET AQ_TM_PROCESSES=0;
    ALTER DATABASE OPEN;
    ALTER DATABASE NATIONAL CHARACTER SET EE8MSWIN1250;
    ALTER DATABASE CHARACTER SET EE8MSWIN1250;
    SHUTDOWN IMMEDIATE; -- or SHUTDOWN NORMAL;
    STARTUP;Value in regedit: HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_XE is set to CZECH_CZECH REPUBLIC.EE8MSWIN1250
    I'm struggling with this issue for hours and unfortunatelly can't make it work. Any advise is more than welcome.
    Thanks,
    Tomas
    I tried to use hints listed here , but always getting some ORA messages.

    Hi Sergiusz,
    Thank you for your reply. You're right, I've probably didn't provide a full details about my issue, but at least now I know, that database encoding(characterset) is correct.
    Here is my issue:
    Within my APEX application I would like to use a JasperReportsIntegration, so to be able to create and run iReports straight from APEX application. Installation, and implementation of JasperReports works fine, I had no issue with it.
    As a second step I've created a simple report using iReport tool, when if preview function is used, all static characters (from report labels) are displayed correctly. Database items are displayed incorectly - some Czech characters are not displayed. Language within report is set to cs_CS, but I've tried also other options. No sucess.
    When I run that report from APEX application (from server) then the same issue - data from database are returned without some czech characters.
    Kind regards,
    Tomas

  • Setting the database character set problem!

    I'm sorry if this is beaten to death, I've read the FAQ and many questions in this forum and I didn't find it.
    I want to change the database character set from the beginning. Where do I place the NLS_CHARACTERSET=EL8ISO8859P7 ?
    I know I can alter the existing database character but EL8ISO8859P7 is not a superset of WE8ISO8859P1 and I don't want to go to Unicode yet...
    Do I have to create a brand new database or can I just alter a script and restart it ?
    I didn't find any nls_setting in the database creations, uh, wizard.
    Please be as specific as possible because as you can understand I'm not what you can call a db expert...
    Thank you.

    which version of Oracle? these things change between versions.
    v7 - update sys.props$ (unsupported!)
    v8.0 - rebuild database
    v8.1 - alter database change characterset
    remember, backup and test before you do this on a used/production database!
    good luck, Nogah.

  • OWB 11.1.0.6.0 with database character set AL32UTF8 is not working

    Hi ,
    we are working for a project for Turkey.
    if we insert Turkish characters in database ,in sqldevelpoer we are able to see the correct data. but when i load a file from preprocessor in OWB Process Flow, the characters which are in Turkish got changed to different characters in database. our databse character set is AL32UTF8. could you please throw some light on this please.
    Many thanks,
    kiranmai.

    hi ,
    ya we are using the correct dataset only in preprocessr configuration. actually it was a problem with OWB only ,
    i have changed database character set to WE8ISO8859P9,then i am able to se correct Trukey chars in database. i think it was a SR for oracle .

  • Alter database character set

    i'm trying to change the character set of my oracle 8.1.6 database from USANSCII to UTF8,using the alter database command.
    ALTER DATABASE CHARACTER SET UTF8;
    But the error being thrown is "New charset needs to be a superset of the old charset.
    Can i migrate from ANSCI TO UTF8 on Oracle 8i?

    What do you get when you query your database using the following SQL statement?
    SQL> SELECT * FROM V$NLS_PARAMETERS
      2  WHERE PARAMETER LIKE '%CHARACTERSET';
    PARAMETER                                                        VALUE
    NLS_CHARACTERSET                                                 WE8ISO8859P15
    NLS_NCHAR_CHARACTERSET                                           AL16UTF16

  • Arabic text shows junk in database character set

    Hi,
    Workion EBS Ver11.5.0
    NLS_CHARACTERSET :AR8ISO8859P6
    NLS_LANG : AMERICAN_AMERICA.WE8ISO8859P1
    i have a trial balance report, in that description text is displaying like this ????? ??? ?????? - ???? ????? ???
    to rectify this, what steps should i do to display in arabic text and it should support both arabic and english.
    could anyone please help me in this.
    Thanks and Regards
    Khaleel

    First you should make sure your client machine is able to display arabic data.
    Second you likely need to change NLS_LANG character set part to the right character set, possibly AR8ISO8859P6 or another character set compatible with your database character set.
    Please read carefully OTN NLS_FAQ http://www.oracle.com/technology/tech/globalization/htdocs/nls_lang%20faq.htm.
    If you are working with Oracle E-Businees Suite, there may be some additional rules to configure application server to display correctly arabic data.

  • Character set changed

    I met a big problem.
    I set the character set to WE8ISO8859P1 by mistaken.
    and thousands of records in Japanese werer inserted.
    are these records saved in Japanese correctly ?
    now I reconstructed the DB in JA16SJIS.
    and How can I migrate the Japanese records in the old
    database to the new one ?
    what should I do ? waiting for your help.

    You have to recreate the database again because the national character set and the database character set can not be changed after the database is created. If you want to get detailed information about it you can read this white paper :
    http://otn.oracle.com/pls/db92/db92.to_pdf?partno=a96529&remark=docindex
    [email protected]
    Joel P�rez

  • Why that database Character set is required

    character set is optional keyword while we create database
    manually.
    even If I didn't give character set it has taken itself automatically. why this is used for?
    if we change the character using commands what will be the response.
    let me.. know pls..
    thank u

    Hi,
    From Oracle documentation :
    Oracle's National Language Support (NLS) architecture allows you to store, process, and retrieve data in native languages. It ensures that database utilities and error messages, sort order, date, time, monetary, numeric, and calendar conventions automatically adapt to the native language and locale.
    In some cases, you may wish to change the existing database character set. For instance, you may find that the number of languages that need to be supported in your database have increased. In most cases, you will need to do a full export/import to properly convert all data to the new character set. However, if, and only if, the new character set is a strict superset of the current character set, it is possible to use the ALTER DATABASE CHARACTER SET statement to expedite the change in the database character set.
    The target character set is a strict superset if and only if each and every codepoint in the source character set is available in the target character set, with the same corresponding codepoint value.
    Paolo

Maybe you are looking for