Oracle 为什么我在我的项目中得到ORA-01722:无效号码?
我试图建立一个合格或不合格的系统,在这个系统中,用户输入id、编号、m1、m2、m3,然后单击submit以获得合格或不合格。我正在使用DAO、VO、DTO来处理结果,但是我得到了“无效数字”SQLSYNTAXERROR。原因是什么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
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个数字列……我想您在某处发送的是字符串而不是数字。需要调试相同的内容并进行检查。