Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp java.sql.SQLSyntaxErrorException:ORA-01722:无效数字_Jsp_Jdbc_Oracle11g - Fatal编程技术网

Jsp java.sql.SQLSyntaxErrorException:ORA-01722:无效数字

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("

我正在开发一个应用程序,它包括一个注册页面,我正在使用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("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。。。这就是我犯的错误。。。