壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5272|回复: 6

[OAF] 问一个和数据库交互的问题,汉字乱码

[复制链接]
发表于 2011/11/23 16:49:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
如题,我使用的数据库是Oracle,userenv('language') 是SIMPLIFIED CHINESE_CHINA.ZHS16GBK
我在vo中setwhereclause的时候想写:            
setWhereClause("user_id = " + currentUser + " and budget_item= " + "维修费");
这样会报错,请问如何解决
Exception Details.  Oracle.apps.fnd.framework.OAException: Oracle.jbo.SQLStmtException: JBO-27122: ??????? SQL ?????: SELECT BudgetAdjEO.BUDGET_ITEM,         BudgetAdjEO.DIST_ID,         BudgetAdjEO.BUDGET_AMOUNT,         BudgetAdjEO.DESCRIPTION FROM CUX_BUDGET_ADJ_TB BudgetAdjEO WHERE (User_id = 39218 and budget_item= άDT·Ñ)        at Oracle.apps.fnd.framework.OAException.wrapperException(Unknown Source)        at Oracle.apps.fnd.framework.OAException.wrapperException(Unknown Source)        at Oracle.apps.fnd.framework.OAException.wrapperInvocationTargetException(Unknown Source)        at Oracle.apps.fnd.framework.server.OAUtility.invokeMethod(Unknown Source)        at Oracle.apps.fnd.framework.server.OAUtility.invokeMethod(Unknown Source)        at Oracle.apps.fnd.framework.server.OAApplicationModuleImpl.invokeMethod(Unknown Source)        at cust.Oracle.apps.ak.budgetadj.webui.BudgetDetailCO.processRequest(BudgetDetailCO.java:89)        at Oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(Unknown Source)        at Oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(Unknown Source)        at Oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(Unknown Source)        at Oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(Unknown Source)        at Oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(Unknown Source)        at Oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(Unknown Source)        at Oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(Unknown Source)        at Oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(Unknown Source)        at Oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(Unknown Source)        at Oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(Unknown Source)        at Oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(Unknown Source)        at Oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(Unknown Source)        at Oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(Unknown Source)        at Oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(Unknown Source)        at Oracle.apps.fnd.framework.webui.OAPageBean.processRequest(Unknown Source)        at Oracle.apps.fnd.framework.webui.OAPageBean.preparePage(Unknown Source)        at Oracle.apps.fnd.framework.webui.OAPageBean.preparePage(Unknown Source)        at Oracle.apps.fnd.framework.webui.OAPageBean.preparePage(Unknown Source)        at _OA._jspService(_OA.java:71)        at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)        at Oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:462)        at Oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:594)        at Oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:518)        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)        at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:713)        at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)        at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)        at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)        at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:221)        at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:122)        at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:111)        at Oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)        at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)        at java.lang.Thread.run(Thread.java:595)
发表于 2011/11/29 20:34:56 | 显示全部楼层
在Jdevelop中选择中文的java文件编译编码。
发表于 2011/11/29 22:34:26 | 显示全部楼层
路过,应该是sql编码问题
发表于 2011/11/29 22:51:41 | 显示全部楼层
字符的单引号每加setWhereClause("user_id = " + currentUser + " and budget_item= " + "‘维修费’");
发表于 2011/12/2 09:47:39 | 显示全部楼层
我这边只要调用这个函数进行转换就正常了。
--====================
public class encode
{

    public encode()
    {
    }

    public static String toGBK(String s)
    {
        byte bs[] = s.getBytes();
        String b;
        try
        {
            b = new String(bs, "GBK");
        }
        catch(UnsupportedEncodingException e)
        {
            b = new String("to GBK failed");
        }
        return b;
    }
}
发表于 2011/12/14 20:20:26 | 显示全部楼层
在JDEV 项目属性里改一下encoding试试
发表于 2013/6/9 20:55:43 | 显示全部楼层
可以先从数字库中取“维修费”转化成字节
然后查询时,再将字节转化成字符串,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 12:45 , Processed in 0.019207 second(s), 16 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表