Jsp java.sql.SQLSyntaxErrorException:ORA-01722:无效数字
我正在开发一个应用程序,它包括一个注册页面,我正在使用Oracle数据库。。我在jsp程序中使用jdbc连接后端和前端(html、js和jsp) 这是我的密码:Jsp java.sql.SQLSyntaxErrorException:ORA-01722:无效数字,jsp,jdbc,oracle11g,Jsp,Jdbc,Oracle11g,我正在开发一个应用程序,它包括一个注册页面,我正在使用Oracle数据库。。我在jsp程序中使用jdbc连接后端和前端(html、js和jsp) 这是我的密码: String fname=request.getParameter("f1"); String uid=request.getParameter("f2"); String email=request.getParameter("f3"); Long phnno=Long.parseLong(request.getParameter("
String fname=request.getParameter("f1");
String uid=request.getParameter("f2");
String email=request.getParameter("f3");
Long phnno=Long.parseLong(request.getParameter("f4"));
String pwd=request.getParameter("f5");
String face=request.getParameter("f7");
String finger=request.getParameter("f9");
out.println(uid);
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","Sindhu","project");
PreparedStatement pst=con.prepareStatement("select * from Shield where uid=?",ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
pst.setString(1,uid);
ResultSet rs=pst.executeQuery();
boolean f=rs.next();
if(f)
{
// some html code
}
else
{
PreparedStatement pst1=con.prepareStatement("insert into shield values(?,?,?,?,?,?,?)");
pst1.setString(1,fname);
pst1.setString(2,uid);
pst1.setString(3,email);
pst1.setLong(4,phnno);
pst1.setString(5,pwd);
pst1.setString(6,face);
pst1.setString(7,finger);
pst1.executeUpdate();
pst1.close();
String TABL = "create table "+uid+" ( "
+ " site VARCHAR2(30) PRIMARY KEY, u_name VARCHAR2(30) NOT NULL, pass VARCHAR2(30) NOT NULL, "
+ " url VARCHAR2(30) NOT NULL" + ")";
Statement stmt = con.createStatement();
stmt.executeUpdate(TABL);
stmt.close();
}
rs.close();
pst.close();
con.close();
}
catch(Exception e)
{
out.println(" "+e);
}
我必须检查数据库中是否已经存在用户Id,如果不存在,则必须插入详细信息。除此之外,我还必须创建一个名称与用户Id相同的表
以下是Oracle中的表创建语法:
CREATE TABLE Shield
(
f_name varchar2(40),
user_id varchar2(40) PRIMARY KEY,
email varchar2(40),
phone Number(11),
pass_id varchar2(40),
face varchar2(40),
finger varchar2(40)
);
我正在使用TOMCAT,但遇到了一个异常:
java.sql.SQLSyntaxErrorException:ORA-01722:无效数字
即使我将电话字段类型更改为varchar2
,我也会遇到同样的异常
我尝试直接在oracle workspace中插入的任何值都会被插入,如果我在jsp中尝试相同的值,它们就不会被插入
提前感谢,,
sindhu您有一个查询
select*fromshield,其中uid=?
但是在您显示的表创建中没有uid
列,只有user\u id
。那么哪个是正确的,那个列的类型是什么,报告的异常针对哪一行?谢谢你。。。我找到了解决办法。。。。我已将Uid更改为用户id。。。这就是我犯的错误。。。