【问题标题】:java/oracle exception--Non supported character setjava/oracle 异常--不支持的字符集
【发布时间】:2012-04-13 10:36:00
【问题描述】:

e 配置为 java 1.5、oracle 11g 和 tomcat 5 服务器运行并获得如下所述的异常。任何解决方案都会有所帮助:

user_lname=TEST LAST NAME,email=,usertypes=BILLER|MS_ACCT_ASSOCIATE|PILOT,hr_org_code=,sales_cbu=,sales_team=) from request headers] ==> 2012-03-29 11:09:04,602 (+00:00:00,039) - NDC = [<mrsxport,EMETERS1,1A48AA5D84E103C1BFD9382966CBA316>]
==> 2012-03-29 11:09:04,603 (+00:00:00,040) - requestURL = []
     Error Message: Unexpected exception during generic page setup!
                    An exception occurred while execute the [get_header_data] CallableStatementProcedure!
                    **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(CharacterSetFactoryThin.java:171)
                        at oracle.sql.CharacterSetUnknown.toString(CharacterSetFactoryThin.java:128)
                        at oracle.xdb.XMLType.processString(XMLType.java:1101)
                        at oracle.xdb.XMLType.processThin(XMLType.java:1136)
                        at oracle.xdb.XMLType.<init>(XMLType.java:541)
                        at oracle.xdb.XMLType.createXML(XMLType.java:344)
                        at com.xerox.xcs.common.ssf.procmgr.jdbc.CallableStatementProcedure.generateXMLOutputParameter(CallableStatementProcedure.java:751)
                        at com.xerox.xcs.common.ssf.procmgr.jdbc.CallableStatementProcedure.generateXMLResponse(CallableStatementProcedure.java:696)
                        at com.xerox.xcs.common.ssf.procmgr.jdbc.CallableStatementProcedure.getNewContent(CallableStatementProcedure.java:406)
                        at com.xerox.xcs.common.ssf.procmgr.jdbc.CallableStatementProcedure.execute(CallableStatementProcedure.java:220)
                        at com.xerox.xcs.common.ssf.procmgr.jdbc.CallableStatementProcedure.execute(CallableStatementProcedure.java:147)
                        at com.xerox.xcs.mrsxport.struts.AbstractGotoPageAction.getHeaderData(AbstractGotoPageAction.java:156)
                        at com.xerox.xcs.mrsxport.struts.AbstractGotoPageAction.execute(AbstractGotoPageAction.java:76)
                        at com.xerox.xcs.mrsxport.struts.GotoViewHistoryPageAction.execute(GotoViewHistoryPageAction.java:64)
                        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
                        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
                        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
                        at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
                        at com.xerox.xcs.common.web.struts.SSFBaseActionServlet.doGet(SSFBaseActionServlet.java:189)
                        at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
                        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
                        at org.apache.catalina.core.Appl

【问题讨论】:

  • 我在mysql上看到过类似的东西。我试图将希伯来语字符存储到 text 和 varchar 字段中,但遇到了非法字符集异常。解决方法是为我的列设置字符集,并且(我认为)为数据库设置默认字符集。

标签: java sql oracle character-encoding oracle11g


【解决方案1】:

什么是数据库字符集和国家字符集

SELECT *
  FROM v$nls_parameters
 WHERE parameter LIKE '%CHARACTERSET'

您要存储和/或检索哪种数据(即英语、希伯来语、日语等)?页面的字符集是什么?

【讨论】:

  • 查询结果:"NLS_CHARACTERSET WE8MSWIN1252 NLS_NCHAR_CHARACTERSET AL16UTF16" 并且给出异常的行是:"if (type.startsWith("OracleTypes")) { if (type.equals("OracleTypes.OPAQUE:SYS .XMLTYPE")) { 不透明不透明 = cstmt.getOPAQUE(pos);"代码之前是用java1.4和oracle 10g开发的,现在我们正在迁移到oracle 11g和java5
  • @Sachi - 旧 10g 数据库的字符集和国家字符集是什么?您尝试存储的 XML 文件的编码是什么?
  • 贾斯汀,oracle 10g 字符集为:"NLS_CHARACTERSET US7ASCII NLS_NCHAR_CHARACTERSET AL16UTF16" 但不确定 XML 编码类型,它是动态创建的。
  • 默认创建 XML 编码类型为 "encoding="UTF-8""
猜你喜欢
  • 2016-08-14
  • 1970-01-01
  • 2020-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-22
相关资源
最近更新 更多