Database character set migration rules

We have an application which migrates various entities from one database to the other. These databases could have different character sets. The migration process is automated. What character set rules should we follow while migration? Can we use the character set scanner is some automated way?
Does ORACLE publish a comprehensive list of subsets and supersets? (and I am NOT talking about strict subsets and supersets) I know that you have a whitepaper which has some rules but that is not a complete set. Any help would be much appreciated. This is an urgent requirement.

There is no simple answer as this is a complex process. You make reference to having looked at a whitepaper on this subject so I assume you know that your application will likely need to dynamically set the nls_lang setting so that proper conversion can take place on the database.
To find what character sets are subsets or supersets of what character sets?
A) The only listing available is in the 8.1.7 Document addendum shipped with the rdbms CD. This document can be found on the web at:
http://technet.oracle.com/docs/products/oracle8i/doc_index.htm
There is no real elegant way to determine possible lossy data situations programmically. Using the scanner to detect within your program whether proper conversion will take place might be possible. There is a documented v$ table that is updated when the scanner is run that could be examined
via SQL in your program to detect lossy data and truncation. You could also possibly use the PL/SQL convert function to detect lossy data. Something like if 'string' = convert('string', us7ascii, WE8MSWIN1252) then ....
Hope this helps.

Similar Messages

  • New white paper: Character Set Migration Best Practices

    This paper can be found on the Globalization Home Page at:
    http://technet.oracle.com/tech/globalization/pdf/mwp.pdf
    This paper outlines the best practices for database character set
    migration that has been utilized on behalf of hundreds of customers
    successfully. Following these methods will help determine what
    strategies are best suited for your environment and will help minimize
    risk and downtime. This paper also highlights migration to Unicode.
    Many customers today are finding Unicode to be essential to supporting
    their global businesses.

    Sorry about that. I posted that too soon. It should become available today (Monday Aug 22nd).
    Doug

  • 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.

  • Character Set Migration - Arabic & English Language Support

    Hi,
    Sofware Specifications:
    OS Version : Windows 2003 EE Server, SP2, 32-Bit
    DB Version : 9.2.0.1
    Application : Lotus Domino 6.5
    Existing Set Up:
    DB CHAR SET : WE8MSWIN 1252
    National Character Set : AL16UTF16
    NLS_LANG : NA
    Now the customer extended their business in EGYPT.
    They need the existing database to support ARABIC & ENGLISH Languages.
    Kindly let me know how to do this character set migration and achieve the client specification.
    Regards
    Suresh

    Check Metalink
    Note:179133.1
    Subject:      The correct NLS_LANG in a Windows Environment
    Note:187739.1
    Subject:      NLS Setup in a Multilingual Database Environment
    Note:260023.1
    Subject:      Difference between AR8MSWIN1256 and AR8ISO8859P6 characterset
    Also, please list all the steps you have performed till now

  • 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

  • Approach to converting database character set from Western European to Unicode

    Hi All,
    EBS:12.2.4 upgraded
    O/S: Red Hat Linux
    I am looking for the below information. If anyone could help provide would be great!
    INFORMATION NEEDED: Approach to converting database character set from Western European to Unicode for source systems with large data exceptions
    DETAIL: We are looking to convert Oracle EBS database character set from Western European to Unicode to support Kanji characters. Our scan results show
    both “lossy (110K approx.)” and “truncation (26K approx.)” exceptions in the database which needs to be fixed before the database is converted to Unicode.
    Oracle Support has suggested to fix all open and closed transactions in the source Production instance using forms and scripts.
    We’re looking for information/creative approaches  who have performed similar exercises without having to manipulate data in the source instance.
    Any help in this regard would be greatly appreciated!
    Thanks for yourn time!
    Regards,

    There are two aspects here:
    1. Why do you have such large number of lossy characters? Is this data coming from some very old eBS release, i.e. from before the times of the Java applet interface to Oracle Forms?  Have you analyzed the nature of this lossy data?
    2. There is no easy way around truncation issues as you cannot modify eBS metadata (make columns wider). You must shorten or remove the data manually through the documented eBS interfaces. eBS does not support direct manipulation of data in the database due to complex consistency rules enforced by the application itself (e.g. forms).
    Thanks,
    Sergiusz

  • Clarification on Character set migration from US7ASCII to UTF8

    Hi,
    I need clarification on the below.
    I need to migrate the database from US7ASCII to UTF8.
    For this I ran csscan for user "TEST" as well as against full database.
    Below log is the csscan output against full database. but my application is depended on TEST schema only. Shall I need to migrate SYS objects data as shown below or it's not required?. If required how to migrate these objects data?
    Looking forward you help.
    USER.TABLE Convertible Exceptional
    SYS.METASTYLESHEET 58 TEST.Table_1 9 0
    TEST.Table_2 11 0
    TEST.Table_3 17 0
    TEST.Table_4 11 0
    [Distribution of Convertible Data per Column]
    USER.TABLE|COLUMN Convertible Exceptional
    SYS.METASTYLESHEET|STYLESHEET 58 0
    Thanks,
    Sankar

    I think you need to migrate all schemas data not only one application schema because
    the database character set is common to all CHAR, VARCHAR2, LONG and CLOB colums
    for any tables in any schema.
    In your case (US7ASCII to UTF8), you need to use export/import because:
    Another restriction of the ALTER DATABASE CHARACTER SET statement is that it can be used only when the character set migration is between two single-byte character sets or between two multibyte character sets. If the planned character set migration is from a single-byte character set to a multibyte character set, then use the Export and Import utilities.
    (see http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96529/ch10.htm#1009904)

  • Database Character Set Conversion from WE8ISO8859P1 to UTF8

    Hi All
    I want to migrate data from one database to another database But my original database character set is WE8ISO8859P1 but i want to migrate it to
    database which has character set UTF8
    because of character set it don't shows me Marathi data which is in original database .
    it shows me some symbol for Marathi words ..
    please help me out.
    Thanking You
    Gaurav Sontakke

    Dear GauravSontakke,
    Since your database version is unknown, i will show you an online documentation of character set migration for 10gR2.
    http://www.oracle.com/pls/db102/search?remark=quick_search&word=character+set+migration&tab_id=&format=ranked
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14225/ch11charsetmig.htm#sthref1442
    *http://download.oracle.com/docs/cd/B19306_01/server.102/b14225/ch11charsetmig.htm#NLSPG011*Please read those carefully.
    Hope it Helps,
    Ogan

  • 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.

  • 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.

  • 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.

  • ORA-12709: error while loading create database character set

    I installed Oracle 8.05 on Linux successfully: was able to login
    whith SQLPlus, start and stop the db whith svrmgrl etc.
    During this install I chose WE8ISO8859P9 as the database
    characterset when prompted.
    After that I installed Oracle Application Server 3.02, and now
    I'm getting the
    ORA-12709: error while loading create database character set
    message when I try to start up the database, and the database
    won't mount.
    Platform is RedHat Linux 5.2.
    NLS_LANG set to different settings,
    e.g. AMERICAN_AMERICA.WE8ISO8859P9
    but without success.
    Anyone any clue?
    Thanks!
    null

    Jogchum Reitsma (guest) wrote:
    : I installed Oracle 8.05 on Linux successfully: was able to
    login
    : whith SQLPlus, start and stop the db whith svrmgrl etc.
    : During this install I chose WE8ISO8859P9 as the database
    : characterset when prompted.
    : After that I installed Oracle Application Server 3.02, and now
    : I'm getting the
    : ORA-12709: error while loading create database character set
    : message when I try to start up the database, and the database
    : won't mount.
    : Platform is RedHat Linux 5.2.
    : NLS_LANG set to different settings,
    : e.g. AMERICAN_AMERICA.WE8ISO8859P9
    : but without success.
    : Anyone any clue?
    : Thanks!
    You can create the database with WE8DEC character set
    and to use the WE8ISO8859P9 on the client or even on Linux.
    The NLS_LANG setting doesn't effect the database, but the
    interface with the database. The same setting can be used in de
    windows 95/98/NT registry.
    null

  • ORA-12709: error while loading create database character set after upgrade

    Dear All
    i m getting ORA-12709: error while loading create database character set, After upgraded the database from 10.2.0.3 to 11.2.0.3 in ebusiness suit env.
    current application version 12.0.6
    please help me to resolve it.
    SQL> startup;
    ORACLE instance started.
    Total System Global Area 1.2831E+10 bytes
    Fixed Size 2171296 bytes
    Variable Size 2650807904 bytes
    Database Buffers 1.0133E+10 bytes
    Redo Buffers 44785664 bytes
    ORA-12709: error while loading create database character set
    -bash-3.00$ echo $ORA_NLS10
    /u01/oracle/PROD/db/teche_st/11.2.0/nls/data/9idata
    export ORACLE_BASE=/u01/oracle
    export ORACLE_HOME=/u01/oracle/PROD/db/tech_st/11.2.0
    export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/perl/bin:$PATH
    export PERL5LIB=$ORACLE_HOME/perl/lib/5.10.0:$ORACLE_HOME/perl/site_perl/5.10.0
    export ORA_NLS10=/u01/oracle/PROD/db/teche_st/11.2.0/nls/data/9idata
    export ORACLE_SID=PROD
    -bash-3.00$ pwd
    /u01/oracle/PROD/db/tech_st/11.2.0/nls/data/9idata
    -bash-3.00$ ls -lh |more
    total 56912
    -rw-r--r-- 1 oracle oinstall 951 Jan 15 16:05 lx00001.nlb
    -rw-r--r-- 1 oracle oinstall 957 Jan 15 16:05 lx00002.nlb
    -rw-r--r-- 1 oracle oinstall 959 Jan 15 16:05 lx00003.nlb
    -rw-r--r-- 1 oracle oinstall 984 Jan 15 16:05 lx00004.nlb
    -rw-r--r-- 1 oracle oinstall 968 Jan 15 16:05 lx00005.nlb
    -rw-r--r-- 1 oracle oinstall 962 Jan 15 16:05 lx00006.nlb
    -rw-r--r-- 1 oracle oinstall 960 Jan 15 16:05 lx00007.nlb
    -rw-r--r-- 1 oracle oinstall 950 Jan 15 16:05 lx00008.nlb
    -rw-r--r-- 1 oracle oinstall 940 Jan 15 16:05 lx00009.nlb
    -rw-r--r-- 1 oracle oinstall 939 Jan 15 16:05 lx0000a.nlb
    -rw-r--r-- 1 oracle oinstall 1006 Jan 15 16:05 lx0000b.nlb
    -rw-r--r-- 1 oracle oinstall 1008 Jan 15 16:05 lx0000c.nlb
    -rw-r--r-- 1 oracle oinstall 998 Jan 15 16:05 lx0000d.nlb
    -rw-r--r-- 1 oracle oinstall 1005 Jan 15 16:05 lx0000e.nlb
    -rw-r--r-- 1 oracle oinstall 926 Jan 15 16:05 lx0000f.nlb
    -rw-r--r-- 1 oracle oinstall 1.0K Jan 15 16:05 lx00010.nlb
    -rw-r--r-- 1 oracle oinstall 958 Jan 15 16:05 lx00011.nlb
    -rw-r--r-- 1 oracle oinstall 956 Jan 15 16:05 lx00012.nlb
    -rw-r--r-- 1 oracle oinstall 1005 Jan 15 16:05 lx00013.nlb
    -rw-r--r-- 1 oracle oinstall 970 Jan 15 16:05 lx00014.nlb
    -rw-r--r-- 1 oracle oinstall 950 Jan 15 16:05 lx00015.nlb
    -rw-r--r-- 1 oracle oinstall 1.0K Jan 15 16:05 lx00016.nlb
    -rw-r--r-- 1 oracle oinstall 957 Jan 15 16:05 lx00017.nlb
    -rw-r--r-- 1 oracle oinstall 932 Jan 15 16:05 lx00018.nlb
    -rw-r--r-- 1 oracle oinstall 932 Jan 15 16:05 lx00019.nlb
    -rw-r--r-- 1 oracle oinstall 951 Jan 15 16:05 lx0001a.nlb
    -rw-r--r-- 1 oracle oinstall 944 Jan 15 16:05 lx0001b.nlb
    -rw-r--r-- 1 oracle oinstall 953 Jan 15 16:05 lx0001c.nlb
    Starting up:
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options.
    ORACLE_HOME = /u01/oracle/PROD/db/tech_st/11.2.0
    System name: SunOS
    Node name: proddb3.zakathouse.org
    Release: 5.10
    Version: Generic_147440-19
    Machine: sun4u
    Using parameter settings in server-side spfile /u01/oracle/PROD/db/tech_st/11.2.0/dbs/spfilePROD.ora
    System parameters with non-default values:
    processes = 200
    sessions = 400
    timed_statistics = TRUE
    event = ""
    shared_pool_size = 416M
    shared_pool_reserved_size= 40M
    nls_language = "american"
    nls_territory = "america"
    nls_sort = "binary"
    nls_date_format = "DD-MON-RR"
    nls_numeric_characters = ".,"
    nls_comp = "binary"
    nls_length_semantics = "BYTE"
    memory_target = 11G
    memory_max_target = 12G
    control_files = "/u01/oracle/PROD/db/apps_st/data/cntrl01.dbf"
    control_files = "/u01/oracle/PROD/db/tech_st/10.2.0/dbs/cntrl02.dbf"
    control_files = "/u01/oracle/PROD/db/apps_st/data/cntrl03.dbf"
    db_block_checksum = "TRUE"
    db_block_size = 8192
    compatible = "11.2.0.0.0"
    log_archive_dest_1 = "LOCATION=/u01/oracle/PROD/db/apps_st/data/archive"
    log_archive_format = "%t_%s_%r.dbf"
    log_buffer = 14278656
    log_checkpoint_interval = 100000
    log_checkpoint_timeout = 1200
    db_files = 512
    db_file_multiblock_read_count= 8
    db_recovery_file_dest = "/u01/oracle/fast_recovery_area"
    db_recovery_file_dest_size= 14726M
    log_checkpoints_to_alert = TRUE
    dml_locks = 10000
    undo_management = "AUTO"
    undo_tablespace = "APPS_UNDOTS1"
    db_block_checking = "FALSE"
    session_cached_cursors = 500
    utl_file_dir = "/usr/tmp"
    utl_file_dir = "/usr/tmp"
    utl_file_dir = "/u01/oracle/PROD/db/tech_st/10.2.0/appsutil/outbound"
    utl_file_dir = "/u01/oracle/PROD/db/tech_st/10.2.0/appsutil/outbound/PROD_proddb3"
    utl_file_dir = "/usr/tmp"
    plsql_code_type = "INTERPRETED"
    plsql_optimize_level = 2
    job_queue_processes = 2
    cursor_sharing = "EXACT"
    parallel_min_servers = 0
    parallel_max_servers = 8
    core_dump_dest = "/u01/oracle/PROD/db/tech_st/10.2.0/admin/PROD_proddb3/cdump"
    audit_file_dest = "/u01/oracle/admin/PROD/adump"
    db_name = "PROD"
    open_cursors = 600
    pga_aggregate_target = 1G
    workarea_size_policy = "AUTO"
    optimizer_secure_view_merging= FALSE
    aq_tm_processes = 1
    olap_page_pool_size = 4M
    diagnostic_dest = "/u01/oracle"
    max_dump_file_size = "20480"
    Tue Jan 15 16:16:02 2013
    PMON started with pid=2, OS id=18608
    Tue Jan 15 16:16:02 2013
    PSP0 started with pid=3, OS id=18610
    Tue Jan 15 16:16:03 2013
    VKTM started with pid=4, OS id=18612 at elevated priority
    VKTM running at (10)millisec precision with DBRM quantum (100)ms
    Tue Jan 15 16:16:03 2013
    GEN0 started with pid=5, OS id=18616
    Tue Jan 15 16:16:03 2013
    DIAG started with pid=6, OS id=18618
    Tue Jan 15 16:16:03 2013
    DBRM started with pid=7, OS id=18620
    Tue Jan 15 16:16:03 2013
    DIA0 started with pid=8, OS id=18622
    Tue Jan 15 16:16:03 2013
    MMAN started with pid=9, OS id=18624
    Tue Jan 15 16:16:03 2013
    DBW0 started with pid=10, OS id=18626
    Tue Jan 15 16:16:03 2013
    LGWR started with pid=11, OS id=18628
    Tue Jan 15 16:16:03 2013
    CKPT started with pid=12, OS id=18630
    Tue Jan 15 16:16:03 2013
    SMON started with pid=13, OS id=18632
    Tue Jan 15 16:16:04 2013
    RECO started with pid=14, OS id=18634
    Tue Jan 15 16:16:04 2013
    MMON started with pid=15, OS id=18636
    Tue Jan 15 16:16:04 2013
    MMNL started with pid=16, OS id=18638
    DISM started, OS id=18640
    ORACLE_BASE from environment = /u01/oracle
    Tue Jan 15 16:16:08 2013
    ALTER DATABASE MOUNT
    ORA-12709 signalled during: ALTER DATABASE MOUNT...

    ORA-12709 signalled during: ALTER DATABASE MOUNT...Do you have any trace files generated at the time you get this error?
    Please see these docs.
    ORA-12709: WHILE STARTING THE DATABASE [ID 1076156.6]
    Upgrading from 9i to 10gR2 Fails With ORA-12709 : Error While Loading Create Database Character Set [ID 732861.1]
    Ora-12709 While Trying To Start The Database [ID 311035.1]
    ORA-12709 when Mounting the Database [ID 160478.1]
    How to Move From One Database Character Set to Another at the Database Level [ID 1059300.6]
    Thanks,
    Hussein

  • Database character set = UTF-8, but mismatch error on XML file upload

    Dear experts,
    I am having problems trying to upload an XML file into an XMLType table. The Database is 9.2.0.5.0, with the character set details:
    SELECT *
    FROM SYS.PROPS$
    WHERE name like '%CHA%';
    Query results:
    NLS_NCHAR_CHARACTERSET          UTF8     NCHAR Character set
    NLS_SAVED_NCHAR_CS          UTF8
    NLS_NUMERIC_CHARACTERS          .,     Numeric characters
    NLS_CHARACTERSET          UTF8     Character set
    NLS_NCHAR_CONV_EXCP          FALSE     NLS conversion exception
    To upload the XML file into the XMLType table, I am using the command:
    insert into XMLTABLE
    values(xmltype(getClobDocument('ServiceRequest.xml','UTF8')));
    However, I get the error:
    ORA-31011: XML parsing failed
    ORA-19202: Error occurred in XML processing
    LPX-00200: could not convert from encoding UTF-8 to UCS2
    Error at line 1
    ORA-06512: at "SYS.XMLTYPE", line 0
    ORA-06512: at line 1
    Why does it mention UCS2, as can't see that on the Database character set?
    Many thanks for your help,
    Mark

    USC2 is known as AL16UTF16(LE/BE) by Oracle...
    Try using AL32UTF8 as the character set name
    AFAIK The main difference between Oracle's UTF8 and AL32UTF8 character set is that is the UTF8 character set does not support those UTF-8 characteres that require 4 bytes..
    -Mark

Maybe you are looking for

  • Apple Mighty Mouse problem

    I bought a Apple Mighty Mouse for my MacBook and now when I'm moving the cursor it instantly appears in another position that has nothing to do with the positioning I'm moving it. Do you know why this happens? Can you help me?

  • Problem in forwarding to a JSP file

    Here is my code. I'm not able to forward to another jsp when I click on the modify button. If I display anything using alert inside the modify function, it is displaying. But when I include the forward statement, the entire screen becomes blank. What

  • Poor resolution of slide show on CD

    Created slide show in Photoshop Elements 5.0 and burned to CD.  Resolution was poor and it did not play in a DVD player.  Sales person insisted bundle of Photoshop Elements 8.0 and Premier 8 would allow me to create a DVD.  Tried editing my Elements

  • Drag and Drop between two trees...

    Hi , Please tell me how to drog and drop from two diffrient trees in a form? is the any demo for this one .. please let me know if there.. thanks in advance Mani

  • Error when run sqlj demo CODE.

    I am using JDeveloper 3.0 to run some SQLJ demo codes. The code come with Oracle 8i for NT. When running these code at first, I did not have any problem. I got all the result correctly. But after I reboot my computer in the night, and restarted it th