Oracle 为什么我在我的项目中得到ORA-01722:无效号码?

Oracle 为什么我在我的项目中得到ORA-01722:无效号码?,oracle,Oracle,我试图建立一个合格或不合格的系统,在这个系统中,用户输入id、编号、m1、m2、m3,然后单击submit以获得合格或不合格。我正在使用DAO、VO、DTO来处理结果,但是我得到了“无效数字”SQLSYNTAXERROR。原因是什么 public int insert(StudentBO bo) { try { //get IntialConetext InitialContext ic = new InitialCont

我试图建立一个合格或不合格的系统,在这个系统中,用户输入id、编号、m1、m2、m3,然后单击submit以获得合格或不合格。我正在使用DAO、VO、DTO来处理结果,但是我得到了“无效数字”SQLSYNTAXERROR。原因是什么

 public int insert(StudentBO bo)
 {
     try
     {
            //get IntialConetext 
            InitialContext ic = new InitialContext();
            //get data sourse obj
            DataSource ds = (DataSource) ic.lookup("java:/comp/env/jdbc/MyLocalDB");
            //get con obj from jdbc con pool
            con = ds.getConnection();
            //create preapared Statement obj
            ps = con.prepareStatement(STUDENT_INSERT_QRY);
            ps.setInt(1,bo.getSno());
            ps.setString(2, bo.getSname());
            ps.setInt(3,bo.getTotal());
            ps.setFloat(4,bo.getAvg());
            ps.setString(5,bo.getResult());
            //execute the query
            int res = ps.executeUpdate();
            return res;
     }//try
     catch(SQLException se)
     {
        se.printStackTrace(); 
     }
     catch(Exception e)
     {
         e.printStackTrace();
     }
     return 0;
 }//insert 
这是我在数据库中的表

 CREATE TABLE "SCOTT"."STUDENT_TAB" 
 (  
"SNO" NUMBER, 
"NAME" VARCHAR2(20 BYTE), 
"M1" NUMBER, 
"M2" NUMBER, 
"M3" NUMBER
)

您的代码设置此参数:

ps.setString(5,bo.getResult())

它与STUDENT_选项卡的此列对齐:

"M3" NUMBER

这似乎是最可能的无效_编号错误源。您需要检查
bo.getResult()
返回的实际值;然后检查对其使用
setString()
的效果

您至少需要向我们显示
STUDENT\u INSERT\u QRY
查询是什么。私有静态最终字符串STUDENT\u INSERT\u QRY=“插入到STUDENT\u选项卡值(?,,,,,,?)”;这是一个查询,我在“int res=ps.executeUpadate()”中出错。请给我们看
create table
语句,用于
student
您的问题不要在注释中发布代码您的问题在表中有4个数字列……我想您在某处发送的是字符串而不是数字。需要调试相同的内容并进行检查。