DB2 SQL Error: SQLCODE=-418, SQLSTATE=42610, SQLERRMC=null, DRIVER=3.59.81 Query:
 INSERT INTO TBL_ODICURCHREGTMP(
             BIZCODE,ABROADOBJCODE,ABROADOBJ,NWREGCURTYPE,NEWINVTOT,NWREGCAP,OBJCODE,
             OBJTYPE,STATE,REGDATE,LOGNAME,USERID,UPDATETIME,NEWINVTOTUSD,NWREGCAPUSD)
      VALUES(?,?,?,?,?,?,?,?,'01',?,?,?,CURRENT TIMESTAMP,
    GET_CCYRATE_VALUE(?,?,'USD',CHAR(CURRENT DATE),2),
    GET_CCYRATE_VALUE(?,?,'USD',CHAR(CURRENT DATE),2)) 
Parameters: [40111111201208158478, 24, 15, CAD, 257278287, 362382387, 1000, 15, 2012-08-15 09:17:09, 开发测试用户, testuser, 257278287, CAD, 362382387, CAD]
at org.apache.commons.dbutils.AbstractQueryRunner.rethrow(AbstractQueryRunner.java:320)
at org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:489)
at org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:402)
at com.icss.platform.service.IServiceAbstract.update(IServiceAbstract.java:105)
at com.icss.safe.pro.out.out07.Out07AddService.addCurrency(Out07AddService.java:85)
at com.icss.safe.pro.out.out07.Out07AddService.doService(Out07AddService.java:43)
at com.icss.platform.service.ServiceExecuteImpl.execute(ServiceExecuteImpl.java:72)
at com.icss.platform.web.ServiceDispacth.doPost(ServiceDispacth.java:86)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.icss.resourceone.sso.client.SingleSignOnClient.processFilter(SingleSignOnClient.java:719)
at com.icss.resourceone.sso.client.SingleSignOnClient.doFilter(SingleSignOnClient.java:210)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:595)
GET_CCYRATE_VALUE(?,?,'USD',CHAR(CURRENT DATE),2) 这个方法是自定义的。用来做金额转换。我把所有参数添加进去。在DB2客户端执行是正确的。不过在java程序中它就会报着个错。、
麻烦帮看下。急。。

解决方案 »

  1.   

    GET_CCYRATE_VALUE(?,?,'USD',CHAR(CURRENT DATE),2) 
    我猜你传的类型不对。
    嘿嘿。 setString试试看?
      

  2.   

    应该不是那个CHAR(CURRENT DATE),因为我给他固定死了。都还是报这个错。而且setString应该有问题吧。这是sql语句啊。sql中可以setString么?我刚试了。没有吧。
      

  3.   


    刚试了。不行。还有应该不是CHAR(CURRENT DATE)的错。因为我给他固定死了‘2012-08-14’都报错
      

  4.   

    我猜GET_CCYRATE_VALUE(?,?,'USD',CHAR(CURRENT DATE),2) 
    里面的?有问题。 
    你要是能贴点xml和java代码就更好了。
      

  5.   

    GET_CCYRATE_VALUE
    这个方法 java里面有么
    不能识别的吧
    直接用java做个金额转换的方法好了
      

  6.   

    应该是Java调用那里的代码错误。调用这个方法貌似和调用存储过程差不多吧。SQL语句我个人认为是正确的。