这真怪的问题!!!大家看一下吧。跪求大师们了!!!小弟在线急!!!等待!!!!!

dalishi1 2005-08-02 04:03:49
环境:weblogic+oracle9i+windows 2000 server
问题:其中:表里zcmc字段为字符型,在oracle +PLSQL Developer 查询得出数据为:5 (如果改为05,就能正确取出数据)
1。如果zcmc字段为一个位数值时,就发出错误(如下异常),如果用rs.getInt(1)取值就得出 为:0
2。如果zcmc字段为两位数值或两个字符串以上时,得出正确的数据


javabean代码:

public String filemc()
{
Connection con = null;
PreparedStatement ps = null;
ResultSet rs=null;


String mc="";



try
{

String strQuery="select zcmc from t_czzc_file where zcid=001";
System.out.println(strQuery);

con=ds.getConnection();
ps = con.prepareStatement(strQuery);

rs=ps.executeQuery();

if(rs.next())
{

mc=rs.String("zcmc");

System.out.println(mc);


}


}
catch(SQLException e){
e.printStackTrace();
}
finally
{
if (rs != null) try {rs.close();}
catch (SQLException ignore) {}
if (ps != null) try {ps.close();}
catch (SQLException ignore) {}
if (con != null) try {con.close();}
catch (SQLException ignore) {}
}
return mc;

}





错误:

java.util.NoSuchElementException
at java.util.StringTokenizer.nextToken()Ljava.lang.String;(StringTokenizer.java:259)
at jsp_servlet._mofdoc._mof._zc.__zhmxlist_tt._jspService(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(__zhmxlist_tt.java:197)
at weblogic.servlet.jsp.JspBase.service(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run()Ljava.lang.Object;(ServletStubImpl.java:996)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;Lweblogic.servlet.internal.FilterChainImpl;)V(ServletStubImpl.java:419)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;Lweblogic.servlet.internal.FilterChainImpl;)V(ServletStubImpl.java:463)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(ServletStubImpl.java:315)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run()Ljava.lang.Object;(WebAppServletContext.java:6452)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Lweblogic.security.subject.AbstractSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Lweblogic.security.acl.internal.AuthenticatedSubject;Lweblogic.security.acl.internal.AuthenticatedSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(Lweblogic.servlet.internal.ServletRequestImpl;Lweblogic.servlet.internal.ServletResponseImpl;)V(WebAppServletContext.java:3661)
at weblogic.servlet.internal.ServletRequestImpl.execute(Lweblogic.kernel.ExecuteThread;)V(ServletRequestImpl.java:2630)
at weblogic.kernel.ExecuteThread.execute(Lweblogic.kernel.ExecuteRequest;)V(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run()V(ExecuteThread.java:178)
at java.lang.Thread.startThreadFromVM(Ljava.lang.Thread;)V(Unknown Source)

...全文
131 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dalishi1 2005-08-05
  • 打赏
  • 举报
回复
我已解决了。weblogic.oci.driver换成oracle.jdbc.driver就行了。
guoguo902 2005-08-03
  • 打赏
  • 举报
回复
既然你在表中将该字段定义为varchar2的,那么为什么要用rs.getString()来取呢?
我觉得这个问题应该是Oracle内部关于String类型和Integer类型之间转换造成的。建议你先用
rs.getString()将数据取出来,再用Integer.PaseInt()来转换..
dalishi1 2005-08-03
  • 打赏
  • 举报
回复
本题是VARCHAR2(60) ,如果是用来作标志位的字段时,字符型为VARCHAR2(1)也是把1转变成0,
如果用select count(*) from t_czzc_file 来获取总数时,如果里面有两位数以上的数值就可以
正常取值,是一位数的话,也变成成0,即使是整型为NUMBER,取值也是这种情况!
dalishi1 2005-08-03
  • 打赏
  • 举报
回复
感谢各楼主, 如果我按guoguo902(笨)方法去取的话,也就是先用rs.getString()将数据取出来,再用Integer.PaseInt()来转换..来取的话,在jsp显示时就也为0,跟原来应得到的值不对了,不然,就发生异常的情况,如果有两位数就正常取值。
ghostberry 2005-08-02
  • 打赏
  • 举报
回复
zcmc字段为字符型 char(?) 是两位的吧
这种字段就算放一位的值,也会变成两位
不知道是不是这个原因
ghostberry 2005-08-02
  • 打赏
  • 举报
回复
zcmc字段为字符型 char(?) 是两位的吧
dalishi1 2005-08-02
  • 打赏
  • 举报
回复
不好意思,我发帖时,mc=rs.String("zcmc");应为mc=rs.getString("zcmc");
就是在javabean运行正确的情况下,jsp显示时,发生这样的错误,还感谢weijian(方舟)以及大家,
请问那位大师遇到这种情况的。是不是全地球的人只有我遇到这个怪问题啊。%·····
weijian 2005-08-02
  • 打赏
  • 举报
回复
mc=rs.String("zcmc");
改为
mc=rs.getString("zcmc");
spiritsl 2005-08-02
  • 打赏
  • 举报
回复
顶一下

慢慢研究
dalishi1 2005-08-02
  • 打赏
  • 举报
回复
帮我顶一下!

81,122

社区成员

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

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