日期:2014-05-17  浏览次数:20861 次

求教:"java.sql.SQLException: ORA-03115: 不支持的网络数据类型或表示法"
求教:请问哪位大哥碰到过“java.sql.SQLException: ORA-03115: 不支持的网络数据类型或表示法”这个异常,已经“百度+Google”了,但还是没有找到答案。把SQL语句拿到PLSQL中执行是好的。

public GoodsBean getGoodsBean(String id){

GoodsBean gb=new GoodsBean();

try{

ct=new ConnDB().getConn();
ps=ct.prepareStatement("select * from goods where goodsId=?");
ps.setString(1, id);
rs=ps.executeQuery();

if(rs.next()){

gb.setGoodsId(rs.getString(1));
gb.setGoodsName(rs.getString(2));
gb.setGoodsIntro(rs.getString(3));
gb.setGoodsPrice(rs.getFloat(4));
gb.setGoodsNum(rs.getInt(5));
gb.setPublisher(rs.getString(6));
gb.setPhoto(rs.getString(7));
gb.setGoodsType(rs.getString(8));
}

}catch(Exception e){
e.printStackTrace();
}finally{
this.close();
}

return gb;
}

------解决方案--------------------
应该是select * from goods where goodsId=? 这里有问题吧。你得到的参数是String类型的。我估计你在sql里面goodsId应该是number类型的。所以有问题吧。建议你调试一下。select * from goods where goodsId=2 试试。
------解决方案--------------------
ps=ct.prepareStatement("select * from goods where goodsId=?");
ps.setString(1, id);

这个goodsId是varchar2类型的吗?我猜就是这里的问题了,ps.setString()是给字符型负值的。
------解决方案--------------------
探讨
应该是select * from goods where goodsId=? 这里有问题吧。你得到的参数是String类型的。我估计你在sql里面goodsId应该是number类型的。所以有问题吧。建议你调试一下。select * from goods where goodsId=2 试试。

------解决方案--------------------
楼主换一下oracle的JDBC Driver Jar的版本。你的版本应该不支持。