java调用ORACLE

ncyt19770228 2007-12-07 02:16:47
我用JAVA程序调用ORACLE存储过程时,参数没有被传入,测试看见"???",如果调用SELECT语句不会出现这种情况,在SQL_PLUS执行存储过程没有问题,我JDK和JRE均为1.5的版本,ORACLE用的是8i(8.16),TOMCAT5.0,哪位帮忙解决一下,先谢谢了!

错误信息如下:
org.apache.jasper.JasperException: For input string: "??? "
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.linkstart.fire61web.servlet.EncodingFilter.doFilter(EncodingFilter.java:38)
...全文
111 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ncyt19770228 2007-12-07
  • 打赏
  • 举报
回复
传入的参数是String类型,不是中文
ncyt19770228 2007-12-07
  • 打赏
  • 举报
回复
但是同样的代码在另一台机器上不会出现这种情况,我也尝试改NLS_LANGUAGE好象也没什么作用
ncyt19770228 2007-12-07
  • 打赏
  • 举报
回复
call = (CallableStatement) myDBTrans.getCon().prepareCall(
"{call PKG_FIREWEB.getsftj(?,?,?,?,?,?,?,?,?)}");
call.setString(1, AS_XFJGBH);
call.registerOutParameter(2, Types.ARRAY, "ARRAY1");
call.registerOutParameter(3, Types.ARRAY, "ARRAY1");
call.registerOutParameter(4, Types.ARRAY, "ARRAY1");
call.registerOutParameter(5, Types.ARRAY, "ARRAY1");

call.registerOutParameter(6, Types.ARRAY, "ARRAY1");
call.registerOutParameter(7, Types.ARRAY, "ARRAY1");
call.registerOutParameter(8, Types.ARRAY, "ARRAY1");
call.registerOutParameter(9, Types.ARRAY, "ARRAY1");

call.execute();

Array xfjg = (Array) call.getArray(2);
Array xfjgname = (Array) call.getArray(3);
Array swzscount = (Array) call.getArray(4);
Array sfdwcount = (Array) call.getArray(5);
Array jfjecount = (Array) call.getArray(6);

Array swzstj = (Array) call.getArray(7);
Array sfdwtj = (Array) call.getArray(8);
Array jfjetj = (Array) call.getArray(9);
这是调用存储过程的代码
椅子来了 2007-12-07
  • 打赏
  • 举报
回复
和谐接分

olivesoup 2007-12-07
  • 打赏
  • 举报
回复
这说明参数被传入了,只不过是乱码,按楼上的改一下
jsjhuage 2007-12-07
  • 打赏
  • 举报
回复
在JSP头部包含 <%@page contentType="text/html;charset=gb2312"%>
在Action中调用String param = new String(canshu.getBytes("ISO-8859-1"),"GBK")就可以了.
jsjhuage 2007-12-07
  • 打赏
  • 举报
回复
你传的参数是中文吧
loveyt 2007-12-07
  • 打赏
  • 举报
回复
不知道你代码怎么写的.

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧