Getting "Non supported character set: oracle-character-set-178" exception

Hi,
I am using Struts,spring,hibernate and database oracle 9i.
There are 2 modules developed by 2 units, both uses different versions of Spring and hibernate.As well one uses stored procedures and one uses prepared statements.
I am integrating both units together.
Unit A :-
ojdbc14.jar,hibernate3.jar and nls_charset12.jar
Unit B:
hibernate2.jar,ojdbc14_g-9.2.0.5.jar (means 9.2.0.5 version) or patch which has solutions for prepared statement bug in ojdbc14.jar , nls_charset12.jar
So my unit B works fine if i used latest version jars and nls_charset12.jar, but unit A fails in (at oracle.jdbc.oracore.OracleTypeCHAR.toDatum).
I placed nls_charset12.zip also but still same error. Can you please tell me whether there is any jar conflict or any of the spring/hibernate jar contains implementation which is clashing.
Thanks and Regds.
Sudarshan Wad

Sudarshan,
Perhaps you need to use "orai18n.jar" instead of "nls_charset12.jar"? The Oracle JDBC FAQ has more details.
Good Luck,
Avi.

Similar Messages

  • 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

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

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

  • UpdateString: non supported character set: oracle-character-set-39

    using the programmatic updates jdbc 2.0 api-sample from OTN (http://technet.oracle.com/sample_code/tech/java/sqlj_jdbc/sample_code_index.htm) - scrollable resultset - I get the message "non supported character set...".
    Database: 8.0.6
    using classes111.zip
    jdk 1.2
    any ideas?
    thanks a lot,
    andreas

    using the programmatic updates jdbc 2.0 api-sample from OTN (http://technet.oracle.com/sample_code/tech/java/sqlj_jdbc/sample_code_index.htm) - scrollable resultset - I get the message "non supported character set...".
    Database: 8.0.6
    using classes111.zip
    jdk 1.2
    any ideas?
    thanks a lot,
    andreas

  • 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

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

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

    Hi,
    I am working on resultset.updateRow() and found some problem.
    I've tried the same jsp page on 2 WebLogic server
    one is on a Solaris Platfoem and another is on a NT platform
    On NT Platform it seems to be OK and update the database successfully.
    On Solaris, on error message on WebLogic log but error found in the JDBC log
    java.sql.SQLException: Non supported character set: oracle-character-set-860
    P.S. both jsp page connection to the same database server Oracle 8
    The testing JSP page:
    <%@ page language="java" import="java.sql.*, oracle.jdbc.driver.*,
    java.util.*, javax.sql.*" %>
    <html>
    <head>
    <title>Weblogic Oracle Testing - Store Procedure</title>
    <meta http-equiv="Content-Type" content="text/html; charset=big5">
    </head>
    Oracle Connection Testing
    <br>
    <body bgcolor="#FFFFFF">
    <%
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    String sql;
    Driver myDriver =
    (Driver)Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    try {
    conn=DriverManager.getConnection("jdbc:oracle:thin:sa/z0y1z2y3@oradev01:1521
    :DEV01a");
    DatabaseMetaData DBMetaData = conn.getMetaData();
    boolean support1 =
    DBMetaData.supportsResultSetType(ResultSet.TYPE_SCROLL_SENSITIVE);
    boolean support2 =
    DBMetaData.supportsResultSetType(ResultSet.CONCUR_UPDATABLE);
    %>
    <p><%=support1%></p>
    <p><%=support2%></p>
    <%
    //create a statement
    stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_UPDATABLE);
    //execute a query
    rs = stmt.executeQuery("SELECT tbl_web_trx_hdr.* FROM tbl_web_trx_hdr");
    int concurrency = rs.getConcurrency();
    int type = rs.getType();
    %>
    <p>concurrency: <%=concurrency%></p>
    <p>type: <%=type%></p>
    <%
    rs.moveToInsertRow();
    rs.updateString("org_idx", "CCC");
    rs.updateString("trx_num", "ABC2");
    rs.updateDate("trx_dte", java.sql.Date.valueOf("2001-06-01"));
    rs.updateString("description", "123");
    rs.insertRow();
    rs.updateRow();
    } catch (SQLException e)
    { System.out.println("SQLMessage: " + e.getMessage());
    finally
    { rs.close();
    stmt.close();
    conn.close(); }
    %>
    </body>
    </html>
    Please help
    regards,
    Fannie

    yupp finally i got the solution. . .
    I was using connection from tomcat connection pooling.
    Hence, even though i was setting the classes12.jar and nls_charset12.jar in the classpath and compiling, -In runtime tomcat was using its own classes in the common/lib folder. . .(which might not support oracle-character-set-178.)
    So just added this jars into the common/lib of tomcat instead of web-inf/lib of my project
    and things began working. . .
    Thanks for the hint jshell. . .

  • Non-supported Character Set-36

    I'm using Oracle8 and I have a Java application that tries to insert a text message in a queue. The file works in my company, but when I try to run it from another place it produces an error saying:
    oracle.jms.AQjmsException: Non supported character set: oracle-character-set-36
    Knowing that NLS_LANG parameter is set to American_America.AR8ISO8859P6 (it must be kept as AR due to another application).
    So how can I get rid of this error??
    thanks a lot

    I'm using Oracle8 and I have a Java application that tries to insert a text message in a queue. The file works in my company, but when I try to run it from another place it produces an error saying:
    oracle.jms.AQjmsException: Non supported character set: oracle-character-set-36
    Knowing that NLS_LANG parameter is set to American_America.AR8ISO8859P6 (it must be kept as AR due to another application).
    So how can I get rid of this error??
    thanks a lot

  • SQLException :  Non supported character set

    I'm trying to use customized type mapping with JDBC and something doesn't work.
    here is a sample code:
    Connection con;
    String spec = "{? = call listUzivatele()}";
    CallableStatement cstmt = con.prepareCall(spec);
    cstmt.registerOutParameter(1, Types.ARRAY, "ARCH_L.SEZNAM_UZIVATELU_T");
    cstmt.executeUpdate();
    Map map = con.getTypeMap();
    map.put("ARCH_L.UZIVATEL_T",Class.forName("uziv"));
    Object[] pole = (Object[])cstmt.getArray(1).getArray();
    after the last statement I'm getting SQLException:
    Non supported character set: oracle-character-set-170
    without setting type mapping for "ARCH_L.UZIVATEL_T" code works.

    here is the answer - put nls_charset12.zip into your classpath

  • Non supported character set with ojdbc14.jar

    Hi.
    I have an application that uses JMS/AQ and works great under JDK1.4 and with libraries:
    -classes12.jar
    -nls_charset12.jar
    I looked at the oracle web site that says you should use the new JDBC drivers(ojdbc14.jar) but I fail to get it working. I keep getting;
    oracle.jms.AQjmsException: Non supported character set: oracle-character-set-178
    at oracle.jms.AQjmsSession.addDurableSubscriber(AQjmsSession.java:2616)
    at oracle.jms.AQjmsSession.createDurableSubscriber(AQjmsSession.java:2124)
    at oracle.jms.AQjmsSession.createDurableSubscriber(AQjmsSession.java:1872)
    at prevision.socketserver.JMSThread.checkForNewAlarms(JMSThread.java:84)
    Any help would be greatly appreciated!
    Best regards,
    Christer Nordvik

    hi Christer,
    I have looked at the drivers download page at:http://otn.oracle.com/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.html and there isn't any nls_charset12.jar for JDK1.4. I've tried using the one with JDK1.3
    There isn't any nls_charset12.jar for 1.4, its the one that comes with 1.3, just wanted to check it you are using the latest version of nls_charset12.jar
    BTW are you running this program from command-line or app server ? Incase of app server the latest jar's must be replaced in oc4j_home/jdbc/lib dir.
    Elango.

  • Non supported character set error

    Hello, I have a j2ee application that uses OLAP API to make queries against cubes created with cwm2 packages, in a database (db 1).
    I've replicated the schema in another db (db 2), importing the user (with a dmp file) and throwing the object creation scripts. This works right, and the objects in the catalog are all validated. But my j2ee application doesn't work against this new user; some errors appears.
    The two databases are the same version, the only difference is that db 2 was installed using WE8ISO8859P15 character set. Is there any problem with this set and the olap api ? The character set in db 1 is WE8ISO8859P1.
    The error is:
    "oracle.express.idl.util.OlapiException: Non supported character set: oracle-character-set-46".
    I'm using ojdbc14.zip and orai18n.zip in the WEB-INF/lib directory of my application. My database version is 10g r. 2 (10.2.0.1.0)
    Thanks by your reply.

    At what point does this error occur? Can you provide more of the stack trace?
    Geof

  • Non supported character set: ...

    Hi,
    I'm sure I have a well known problem. When trying to post a new row to my DB (Oracle 9i Rel. 2) a java.sql.SQLException is thrown with the message Non supported character set: oracle-character-set-178
    What I did to fix this error is:
    - checked if nls_charset12.jar is in the classpath (it is)
    - tried thin instead of oci (the error is the same)
    - changed my NLS_LANG to ....UTF8 or ....WE8ISO8859P1 (didn't help also)
    Does anybody know something else what I can do?
    Thank you.
    Axel

    I found the solution myself.
    I had to use the classes12.jar (etc) shipped with JDeveloper. I replaced these some day because OCI access didn't work with these classes. But now it seems to work.

Maybe you are looking for