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 AMI 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 -
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 Developers 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,
andreasusing 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,
JeganHi,
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-1251I 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. -
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,
Fannieyupp 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 lotI'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 Nordvikhi 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.
AxelI 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
-
How can I see photos from streaming on My iPad?
How can I see My photos from streaming on My iPad? I Can see Them on My iPhone. If I Tale a photo with My iPad it goles to streaming, but I sutil can no see treaming pictures on My iPad.
-
Vendor Prepayment Process - SAP best practice
Hi Friends, I am looking for SAP Best Practices for Vendor Prepayment process. Could you guide me step by step approach.. Is there any config ?? I have maintained Prepayment Indicator in Vendor Master.. Please throw some light.. Regards, Jackie
-
Hi all, I see in Security monitor: IPS database file: 119% (Usuage) idsmdc.db (28.94%) idsmdc.log (90.45%) Now, I want to ask, If I delete file idsmdc.log, Cisco VMS can run well or not? How to decrease the IDS database? Thank you very much.
-
Problem with Huawei Webstick and lion, Problem with Huawei Webstick and lion
My webstick Huawei has stopped functioning ever since I have uploaded Mountain Lion. Any suggestions
-
I downloaded CC 2014 and now my image proseccer on 2 computers does not work on either
I downloaded CC 2014 and now my image proseccer on 2 computers does not work on either