Risk involved converting Oracle character set to Unicode (AL32UTF8 or UTF8)

Hi All -
I am a PL/SQL devloper and quite new in Database Adminstration have very little knowledge base on this.
Currently I am working on project where we have requirement to store data in Multiple Languages in Database.
After my findings via Google I am clear that our database character set needs to be changed to Unicode (AL32UTF8 or UTF8). Before moving forward I would like to know what are the risk involved doing this?
Few Question:-
Would this change take long time & involve lots of effort ?
Can we revert back once this chnage is done, with no data loss?
Will there be any changes required while wrting SQL on tables having multi language data?
As of now requirement to store data in Multi Language is very specfic to some tables only, not the whole DB, are there any other options storing data in diffrent languages like (Spanish,Japnese,Chinese,Italian, German, and French) in just one specific table?
Thanks...
Edited by: user633761 on Jun 7, 2009 9:15 PM

>
Will there be any changes required while wrting SQL on tables having multi language data?If you move from single byte character set to multi byte character set, you should take into count that 1 character my use 1,2,3 or 4 bytes to be stored: http://download.oracle.com/docs/cd/B19306_01/server.102/b14225/ch2charset.htm#i1006683
This may impact SQL or PL/SQL code that is working on character string lengths.
Note also that using exp/imp to change database character set is not so simple; see following message:
Re: charset conversion from WE8ISO8859P1 (8.1.7.0) to AL32UTF8(9.0.1.1)
>
As of now requirement to store data in Multi Language is very specfic to some tables only, not the whole DB, are there any other options storing data in diffrent languages like (Spanish,Japnese,Chinese,Italian, German, and French) in just one specific table?Using NCHAR character types is another possibility:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14225/ch11charsetmig.htm#sthref1493
Edited by: P. Forstmann on Jun 8, 2009 9:10 AM

Similar Messages

  • Oracle Character sets with PeopleSoft - AL32UTF8 vs. UTF8

    We currently have PeopleSoft FInancials v8.8 with PeopleTools 8.45 running on Oracle 9.2.0.8 with the UTF8 character set.
    We plan to upgrade to Oracle 10.2, and want to know if we can and should also convert the character set to AL32UTF8.
    Any issues?
    (A couple of years ago, we were told that AL32UTF8 was not yet supported in PeopleSoft).

    Right now, something strange, Oracle recommand do not use anymore UTF8, and Peoplesoft recommand do not use AL32UTF8 yet.
    You can read the solution id #719906, but anyway, AL32UTF8 on PT8.4x should works fine.
    Nicolas.

  • 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

  • Non supported character set: oracle-character-set-41

    Hi everyone,
    I have a issue while passing a VARRAY from my Java Class to Stored Procedure.
    TYPE ERR_DATA_ARRAY AS VARRAY(100) OF VARCHAR2(1000);
    In my code i have used ArrayDescriptor and ARRAY class of oracle.
    When i run my program in eclipse i get following exception:-
    java.sql.SQLException: Non supported character set: oracle-character-set-41
    at oracle.gss.util.NLSError.throwSQLException(NLSError.java:46)
    at oracle.sql.CharacterSetUnknown.failCharsetUnknown(CharacterSetFactoryThin.java:171)
    at oracle.sql.CharacterSetUnknown.convert(CharacterSetFactoryThin.java:135)
    at oracle.sql.CHAR.<init>(CHAR.java:159)
    at oracle.sql.CHAR.<init>(CHAR.java:183)
    at oracle.jdbc.oracore.OracleTypeCHAR.toDatum(OracleTypeCHAR.java:161)
    at oracle.jdbc.oracore.OracleType.toDatumArray(OracleType.java:166)
    at oracle.jdbc.oracore.OracleTypeCHAR.toDatumArray(OracleTypeCHAR.java:208)
    at oracle.sql.ArrayDescriptor.toOracleArray(ArrayDescriptor.java:1517)
    at oracle.sql.ARRAY.<init>(ARRAY.java:117)
    at com.niit.slims.common.ejb.Array_test.test(Array_test.java:52)
    at com.niit.slims.common.ejb.Array_test.main(Array_test.java:20)
    I have added ojdbc14.jar.And my working jdk is jdk1.4.
    Plz help
    Edited by: user10569173 on Dec 8, 2011 3:58 AM

    I am not an expert here,
    but it seems that since you are using ojdbc14.jar you may actually need the
    nls_charset12.jar
    instead of the one I suggested previously.
    Regards
    Peter

  • Problem : "You cannot convert the character set"..Any suggestions?

    Hi All,
    I have this character inside my internal table, KOÇTA&#350; YAPI MARK.T&#304;C A.&#350;. and it created a short dump on the program and it says "You cannot convert the character set". But this customer is already maintained inside the table KNA1..
    The code is like this one:
    REPLACE ALL OCCURRENCES OF '€' IN linebuffer WITH 'EUR'.
    TRANSFER linebuffer TO filename. "LENGTH bytes_to_transfer.
    the LINEBUFFER here is an internal table.
    I think conversion is the key here. Do anyone knows how to convert this thing? Or is it the Unicode system?  Could someone please help me to my problem?
    Thanks so much guys!
    Regards,
    Mackoy

    Hi,
    What i feel here is you are trying to pass  totla internal table at once.Internal table may have more than one record.Filename may string which can contain one row.
    So instead of that put the internal table into LOOP.
    DATA : v_string(200).
    LOOP AT  LINEBUFFER.
    Here your internal table may have non char data type.That is the
    main problem.
      Note : while concatenating all non char fields of LINEBUFFER
               should move to first to temporary char field and conatenate it
    CONCATENATE  LINEBUFFER-field1 LINEBUFFER-field2
      INTO  v_string.
    ENDLOOP.

  • How to set Spanish, ESN CP1252, , oracle Character Sets WE8MSWIN1252

    select * from NLS_DATABASE_PARAMETERS
    database characterset is
    NLS_CHARACTERSET               AL32UTF8
    NLS_NCHAR_CHARACTERSET         AL16UTF16 
    NLS_LANGUAGE                   AMERICAN
    NLS_TERRITORY                  AMERICAselect * from NLS_INSTANCE_PARAMETERS ;
    PARAMETER                         VALUE
    NLS_LANGUAGE                      SPANISH
    NLS_TERRITORY                     SPAINhow to set Spanish, ESN CP1252, , oracle Character Sets WE8MSWIN1252
    Please suggest.
    Thanks In advance

    Is it really ok to convert AL32UTF8 to WE8MSWIN1252?
    NLS_CHARACTERSET AL32UTF8
    to
    NLS_CHARACTERSET WE8MSWIN1252
    please suggest

  • SQLException: Non supported character set: oracle-character-set-178

    Hello,
    I run a j2ee application on the Sun J2EE Application server.
    I migrated to 0racle 9.2.0.3.
    I have an ejb making a connexion with the oci driver
    and in it I manipulate XMLType:
    PreparedStatement pst = cnx.prepareStatement(sql);
    XMLType xt = XMLType.createXML(cnx, "<ENTETE></ENTETE>");
    pst.setObject(1, xt);
    I've got an exception on the setObject method :
    java.sql.SQLException: Non supported character set: oracle-character-set-178
    at oracle.gss.util.NLSError.throwSQLException(NLSError.java:46)
    at oracle.sql.CharacterSetUnknown.failCharsetUnknown(CharacterSetFactory
    Thin.java:171)
    at oracle.sql.CharacterSetUnknown.convert(CharacterSetFactoryThin.java:1
    35)
    at oracle.xdb.XMLType.getBytesString(XMLType.java:1687)
    at oracle.xdb.XMLType.getBytesValue(XMLType.java:1623)
    at oracle.xdb.XMLType.toDatum(XMLType.java:431)
    at oracle.jdbc.driver.OraclePreparedStatement.setORAData(OraclePreparedS
    tatement.java:2745)
    at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedSt
    atement.java:3208)
    I have the nsl_charset12.zip , ojdbc14.jar,xdb.jar,xmlparserv2.jar in the J2EE_CLASSPATH of my server.
    Does any one have an idea.
    Thanks , Edwige

    (*bump*)
    Almost the exact same problem here...
    "conn" is an object of type OracleConnection
    "cst" is an object of type "CallableStatement"
    "xml" is a String holding a well-formed XML document (say, "<foo><bar>value</bar></foo>")
    XMLType xt = XMLType.createXML(conn, xml);
    cst.setObject(1, xt); // BOOM! Non supported character set: oracle-character-set-178
    Other relevant details:
    Using the 9.2.0.3 JDBC thin client (ojdbc14.jar)
    Using the newest nls_charset12.zip (in the 9.2.0.3 download section under the "1.2/1.3" heading.
    JDK1.4.1_03 (04?)
    Oracle itself is 9.2.0.3
    database charset is 'WE8MSWIN1252' (yeah, I fought with the DBA and lobbied for UTF-8, but obviously he won that battle... sigh...)
    Also relevant... prior to a few days ago, it worked. Then, the DBA did an upgrade and the charset errors began. It's hard to get a straight answer from him because his English isn't very good, but my guess is that he updated it from 9.2.0.1 to 9.2.0.3.

  • Oracle character set confused

    Dear all:
          We installed the Latest NW7.0 SR3 for EP&EP core for my Portal application. After that ,i found that our oralce default character set is UTF-8. But some of other Java codes(Iviews,pages..which we developed on Tomcat envionment.)are based in the environment of Oracle character set ZHS16GBK. So iam confused that The NW7.0 SR3 can only install in 64bit OS and a Unicode system. Can i change the oracle character set from UTF8 to ZHS16GBK. Or how can i install the SAP system whose oracle basing on character set ZHS16GBK.
    Thanks everyone.

    Hello Shao,
    ok lets clarify some things at the beginning.
    A SAP Java system is not "only using" the database characterset, it is using the national characterset (column types NCHAR, NVARCHAR2, NCLOB). You can check this by reading sapnote #669902.
    You can also check sapnote #456968/#695899 for the supported super sets:
    => As of SAP Web AS Release 7.00 and Oracle client 10g, multibyte character sets are no longer supported
    With these informations you can not use ZHS16GBK.
    > But some of other Java codes(Iviews,pages..which we developed on Tomcat envionment.)are based in the environment of Oracle character set ZHS16GBK
    Sorry but i don't understand this sentence.
    What is your problem with the java code? Do you have custom tables with column types CHAR,VARCHAR2 or CLOB?
    Regards
    Stefan

  • Java.sql.SQLException: Non supported character set: oracle-character-set-17

    Hi,
    i am trying to execute an Oracle procedure from JDBC. The procedure accepts a Nested table as an input parameter. Definition of the nested table is given below.
    Database – Oracle 10g.
    Application Server – JBOSS 4.2.1
    I get the following exception._
    java.sql.SQLException: Non supported character set: oracle-character-set-178
    at oracle.gss.util.NLSError.throwSQLException(NLSError.java:46)
    I.  JDBC  Code_
    Session s = HibernateUtil.getSession();
    Transaction tr = s.beginTransaction();
    con=s.connection();
    oraConn = (OracleConnection) con.getMetaData().getConnection();
    TableObject obj=new TableObject();
    obj.setId(new Integer(123));//Tested ok, stroing in DB
    obj.setDescr("test"); // this line throwing error
    obj.setCre_user(new Integer(456));
    obj.setUpd_user(new Integer(789));
    obj.setXfr_flag("Y");
    ArrayList al=new ArrayList();
    al.add(obj);
    Object[] objAray = al.toArray();
    ArrayDescriptor arrayDescriptor =ArrayDescriptor.createDescriptor("T_TEST_SYN", oraConn);
    ARRAY oracleArray = new ARRAY(arrayDescriptor, oraConn, objAray);
    cs = (OracleCallableStatement)oraConn.prepareCall("call PKG_OBJ_TEST.accept_ui_input(?) ");
    cs.setArray(1, oracleArray);
    cs.execute();
    tr.commit();
    public class TableObject implements SQLData{
    private String sql_type = "T_OBJ_TEST";
    private int id;
    private String descr;
    //private Date cre_date;
    private int cre_user;
    //private Date upd_date;
    private int upd_user;
    private String xfr_flag;
    public TableObject()
    public TableObject (int id,String descr,int cre_user,int upd_user,String xfr_flag)
    // this.sql_type = sql_type;
    this.id = id;
    this.descr = descr;
    // this.cre_date=cre_date;
    this.cre_user=cre_user;
    //this.upd_date=upd_date;
    this.upd_user=upd_user;
    this.xfr_flag=xfr_flag;
    public String getSQLTypeName() throws SQLException {
    return "T_OBJ_TEST";
    public void readSQL(SQLInput stream, String typeName) throws SQLException {
    //sql_type = typeName;
    id=stream.readInt();
    descr=stream.readString();
    //cre_date=stream.readDate();
    cre_user=stream.readInt();
    //upd_date=stream.readDate();
    upd_user=stream.readInt();
    xfr_flag=stream.readString();
    public void writeSQL(SQLOutput stream) throws SQLException {
    try {
    stream.writeInt(this.id);
    System.out.println("Iddddd");
    stream.writeString(this.descr);
    System.out.println("Desccccccccccccccc"+":"+descr);
    //stream.writeDate(cre_date);
    stream.writeInt(this.cre_user);
    System.out.println("userrrrrrrrrrrr");
    //stream.writeDate(upd_date);
    stream.writeInt(this.upd_user);
    System.out.println("upd uiserrrrrrrrrrr");
    stream.writeString(this.xfr_flag);
    System.out.println("flagggggggggggggggggggg"+xfr_flag);
    }catch (SQLException se) {
    System.out.println("Table object sql exception");
    se.printStackTrace();
    catch (Exception e) {
    System.out.println("Table object exception");
    * @return the id
    public int getId() {
    return id;
    * @param id the id to set
    public void setId(Object obj) {
    Integer iobj= (Integer)obj;
    this.id =iobj.intValue();
    * @return the descr
    public String getDescr() {
    System.out.println("getDescr "+descr);
    return descr;
    * @param descr the descr to set
    public void setDescr(Object obj) {
    System.out.println("setDescr "+obj);
    String sobj = (String)obj;
    this.descr=sobj.toString();
    System.out.println("setDescr "+obj);
    * @return the cre_user
    public int getCre_user() {
    return cre_user;
    * @param cre_user the cre_user to set
    public void setCre_user(Object obj) {
    Integer iobj=(Integer)obj;
    this.cre_user = iobj.intValue();
    * @return the upd_user
    public int getUpd_user() {
    return upd_user;
    * @param upd_user the upd_user to set
    public void setUpd_user(Object obj) {
    Integer iobj=(Integer)obj;
    this.upd_user = iobj.intValue();
    * @return the xfr_flag
    public String getXfr_flag() {
    return xfr_flag;
    * @param xfr_flag the xfr_flag to set
    public void setXfr_flag(Object obj) {
    this.xfr_flag = (String)xfr_flag;
    II.  Oracle database object details
    Details of Object and Nested table created in the database.
    T_TEST_SYN is a public synonym created for t_tab_obj_test
    CREATE OR REPLACE TYPE t_obj_test as object (
    id number(10),
    descr varchar2(100),
    --cre_date  date,
    cre_user number(10),
    --upd_date  date,
    upd_user number(10),
    xfr_flag varchar2(1),
    CONSTRUCTOR FUNCTION t_obj_test ( id IN NUMBER DEFAULT NULL,
    descr IN varchar2 default null,
    --cre_date  in date      default null,
    cre_user in number default null,
    --upd_date  in date      default null,
    upd_user in number default null,
    xfr_flag in varchar2 default null ) RETURN SELF AS RESULT ) ;
    CREATE OR REPLACE TYPE BODY t_obj_test as
    CONSTRUCTOR FUNCTION t_obj_test ( id IN NUMBER DEFAULT NULL,
    descr IN varchar2 default null,
    --cre_date  in date      default null,
    cre_user in number default null,
    --upd_date  in date      default null,
    upd_user in number default null,
    xfr_flag in varchar2 default null ) RETURN SELF AS RESULT IS
    BEGIN
    SELF.id := id ;
    SELF.descr := descr ;
    --SELF.cre_date  := cre_date ;
    SELF.cre_user := cre_user ;
    --SELF.upd_date  := cre_date ;
    SELF.upd_user := cre_user ;
    SELF.xfr_flag := xfr_flag ;
    RETURN ;
    END ;
    END ;
    CREATE OR REPLACE TYPE t_tab_obj_test AS TABLE OF t_obj_test ;
    CREATE OR REPLACE PACKAGE BODY PKG_OBJ_TEST AS
    PROCEDURE accept_ui_input ( p_tab_obj_test in T_TAB_OBJ_TEST ) IS
    BEGIN
    FOR row IN p_tab_obj_test.First .. p_tab_obj_test.LAST
    LOOP
    INSERT INTO OBJ_TEST ( ID,
    DESCR,
    CRE_DATE,
    CRE_USER,
    UPD_DATE,
    UPD_USER,
    XFR_FLAG )
    VALUES ( p_tab_obj_test(row).ID,
    p_tab_obj_test(row).DESCR,
    NULL,
    p_tab_obj_test(row).CRE_USER,
    NULL,
    p_tab_obj_test(row).UPD_USER,
    p_tab_obj_test(row).XFR_FLAG ) ;
    END LOOP ;
    COMMIT ;
    END accept_ui_input ;
    END PKG_OBJ_TEST;
    /

    Check your CLASSPATH enviroment variable. Try to add something like c:\Ora10g\jlib\orai18n.jar.
    From "JDBC Developer’s Guide and Reference":
    orai18n.jar
    Contains classes for globalization and multibyte character sets support
    This solved the same error in my case.

  • Non supported character set: oracle-character-set-560

    Hi,
    I created a page and its working fine. In another database when i create a page error occurs as
    Non supported character set: oracle-character-set-560
    Thanks in Advance,
    Jegan

    Hi,
    Refer to the thread...Non supported character set: oracle-character-set-46??? - pls help!
    it has the solution for this...
    Thanks,
    Gaurav

  • Non supported character set: oracle-character-set-46??? - pls help!

    Hello,
    I'm running Hello World example. Could you please help me to resolve "Non supported character set: oracle-character-set-46" error i got?!?!
    This seems to be nls_character problem but somehow i can't figure out what and where should be changed to solve the issue :( .
    thnks,

    Hello all,
    thanks for nothing!
    Actually i resolved issue. But still i don't understand the problem and why solution i did worked out.
    Here is the solution i hope that for somebody somehow it will be usefull:
    1) open ... jdevbin\jdev\lib\ext\jrad\config\jrad.properties
    2) and comment out both rows:
    #JRAD.APPS_JDBC_LIB14={JRAD.APPS_LIBRT_DIR}/ojdbc14.jar;{JRAD.APPS_LIBRT_DIR}/nls_charset12.zip
    #JRAD.APPS_JDBC_LIB13={JRAD.APPS_LIBRT_DIR}/classes12.jar;{JRAD.APPS_LIBRT_DIR}/nls_charset12.zip
    3)closed jdeveloper and opened again
    brgds.

  • Non supported character set: oracle-character-set-171'  in java XSU

    I cannt update object type CHAR data in table cause Non
    supported character set: oracle-character-set-171'
    NLS lang UTF-8
    database language WIN-1251

    I think it is a bug at JDBC-OCI Driver.
    Now I am useing setPlsqlIndexTable to transfer
    a var to PLSQL procedure, and want to
    retrieve it from out parameter.
    When I transfer English characters, it can
    work correctly, but if I transfer Japnese or
    Chinese characters, the disorderly characters
    were returned. I have not resolved this problem
    yet. Who can tell me how to resolve it.

  • Change Oracle character set

    Hi all. I want to change my Oracle character set after installation and after creating database. How can I do it?
    Thanks...

    http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14225/ch2charset.htm#sthref144
    If you have access to Metalink see Note:66320.1

  • Java. ARRAY: oracle-character-set-171

    Hello!
    I need send array of String to Oracle stored procedure.
    I make Oracle ARRAY type ('CREATE OR REPLACE TYPE A_VALUES AS VARRAY(20) OF CHAR(500)').
    Simple my java-code:
    1: ArrayDescriptor descrVal = new ArrayDescriptor("A_VALUES", con);
    2: ARRAY A_VALUES = new ARRAY(descrVal, con, values);
    When to run 2: line to arrise exception:
    java.sql.SQLException: Non supported character set: oracle-character-set-171.
    Why?

    user8478825 wrote:
    Guys please reactA reaction - don't post new questions on old threads.

  • Oracle.sql.ARRAY error "Non supported character set: oracle-character-set-"

    Hi Folks,
    I am getting error :
    java.sql.SQLException: Non supported character set: oracle-character-set-178
    at oracle.gss.util.NLSError.throwSQLException(NLSError.java:46)
    in the following code :
    Object[] arrayToPassToDB=new Object[7];
    ArrayDescriptor arraydesc = ArrayDescriptor.createDescriptor(arrayDesc,con);
    ARRAY array = null;
    array = new ARRAY(arraydesc, con, arrayToPassToDB);
    i am using jdk1.6 and oracle 10g.
    I have copied the orai18n.jar and ojdbc6.jar in WEB-INF\lib directory of my project and also in the Tomcat\lib directory.
    can you please help me?
    Thanks in advance.

    java.sql.SQLException: Non supported character set:oracle-character-set-178

Maybe you are looking for

  • No parameter found in scope

    I am running the page /oracle/apps/per/selfservice/hierarchy/webui/HierarchyPG from within JDeveloper on my local machine. The page runs and loads OK. On clicking the Advanced Search button, the page /oracle/apps/per/selfservice/search/webui/Advanced

  • Same RFQ for two Vendors.

    Dear Experts, I have created a RFQ and in the vendor adress i have given the vendor Number.Now if i want the same RFQ to be sent to two  vendors then how can i do it. Kind Regards Sajid

  • Seeking a LabVIEW Development Job in South India

    Looking forward to work for a reputed organization. Over 2 + years of experience in design and development of customized PC based Embedded software's, automation tool for audio and vision validation, Audio and Telematics Validation Test Cases design

  • Image Problems using bridge

    Hi there. Im having a wierd problem when placing images into PS from Bridge (vCS5). The image breaks up into numerous parts as shown by the image below. The only thing I can think of is that when shooting the image I sometimes set the camera to multi

  • Coherence-cache-config.xml not visible from EAR

    hello all. I've met following issues. The coherence does not see my custom cache-config.xml and thereby uses the default from coherence.jar. Environment: 1. WLS 10.3, Coherence 3.7, jvm 1.6 2. the active-cache is deployed as shared library 3. the ded