简体   繁体   English

从网页插入表单数据时获取ORA-01722:无效数字错误

[英]getting ORA-01722: invalid number error while inserting form data from webpage

Im getting ORA-01722 error while inserting data from jsp form into the oracle database. 从jsp表单将数据插入到Oracle数据库时,我收到ORA-01722错误。 i know that this error is pointing out to me that i am trying to insert a character string inside a number datatype but the problem is that everything looks to be fine to me but still im getting the error 我知道这个错误向我指出我正在尝试在数字数据类型中插入一个字符串,但问题是一切看起来对我来说都很好,但我仍然收到错误

here is the code i use. 这是我使用的代码。

roomregister.jsp roomregister.jsp

<%
String roomcategory=request.getParameter("category");
if(roomcategory==null)
{
    response.sendRedirect("categoryrooms.jsp");
    return;
}
//out.println(roomcategory);
%>
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
    $(document).ready(
        function ()
{
    //getRoomsByCategory();
}
        );
    var roomcategory="<%=roomcategory%>";

   /* function f1()
    //{
      //  var nrooms=$("#hdmaxrooms").val()-1;
        //alert(nrooms);
    }*/
    function chooseRoom(roomno)
    {
        $("#txtroomno").val(roomno);
    }

    function roombook()
    {
        var gender="";
        if(document.getElementById("txtmale").checked)
            gender="Male";
          if(document.getElementById("txtfemale").checked)
            gender="Female";
        if(gender=="")
            {
                alert("Please select a gender");
                return ;
            }
        var receiptno=$("#txtreceiptno").val();
        var name=$("#txtname").val();
        var address=$("#txtaddress").val(); 
        var idproof=$("#txtidproof").val();
        var dob=$("#txtdob").val();
        var contact=$("#txtcontact").val();
        var roomno=$("#txtroomno").val();
        var fromdate=$("#txtfromdate").val();
        var todate=$("#txttodate").val();
        var roomcategory=$("#txtroomcategory").val();
        var noofguestname=$("#txtnoofguestname").val();
        var charge=$("#txtcharge").val();
        var purpose=$("#txtpurpose").val();

        var bookingamount=$("#txtbookingamount").val();


        var url="bookrooms.jsp?receiptno="+ receiptno + "&name=" + name + "&address=" + address + "&idproof=" + idproof + "&dob=" + dob + "&gender="+ gender + "&contact=" + contact + "&roomno="
        + roomno + "&fromdate=" + fromdate +"&todate="+ todate +  "&roomcategory=" + roomcategory + "&noofguestname=" + noofguestname +
        "&charge=" + charge + "&purpose=" + purpose + "&bookingamount=" + bookingamount;

          var xhr=new XMLHttpRequest();
                xhr.open("GET",url,true);
                xhr.onreadystatechange=function (){roomBookResponse(xhr);};
                xhr.send();
                //alert(url);

    }

      function roomBookResponse(xhr)
         {
             if(xhr.readyState!=4)
                 return ;
             //getRoomsByCategory();
             $("#diverrors").html(xhr.responseText);
            // alert("xZXZX" + xhr.responseText);
         }

         function getroom()
         {
            var fromdate =$("#txtfromdate").val();
            var todate =$("#txttodate").val();


            var url="roomsforbooking.jsp?fromdate="+ fromdate + "&todate=" + todate + "&category=" + roomcategory ;
                //alert(url);

          var xhr=new XMLHttpRequest();
                xhr.open("GET",url,true);
                xhr.onreadystatechange=function (){getRoomResponse(xhr);};
                xhr.send();
                //alert(url);

         }
          function getRoomResponse(xhr)
         {
             if(xhr.readyState!=4)
                 return ;
            // getRoomsByCategory();
             $("#diverrors").html(xhr.responseText);
            // alert("xZXZX" + xhr.responseText);
         }
</script>

<font color="white">

<div id="divroomsbycategory"></div>




<div id="image" class="image">

<center>
    <table  class="divcenter" width="60%" border="0">
        <tr><td colspan="2" align="center">ROOM BOOKING</td></tr>

         <tr><td colspan="2" align="center"> <div id="diverrors"></div> </td></tr>
         <tr><td><BR>Receipt_No</td><td><BR><input type="text" id="txtreceiptno"/></td></tr>
         <tr><td>Name</td><td><input type="text" id="txtname"/></td></tr>
         <tr><td>Address</td><td><input type="text" id="txtaddress"/></td></tr>
         <tr><td>Id_Proof</td><td><input type="text" id="txtidproof"/></td></tr>
         <tr><td>Date_of_Birth</td><td><input type="text" id="txtdob"/></td></tr>

         <tr><td>Gender</td><td>Male<input type="radio" id="txtmale" value="male" name="gender"/>
         Female<input type="radio" id="txtfemale" value="female" name="gender"/></td></tr>


         <tr><td>Contact</td><td><input type="text" id="txtcontact"/></td></tr>
         <tr><td> Room_No</td><td>
                 <input type="text" id="txtroomno" readonly="readonly"/>
                 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp&nbsp;&nbsp;&nbsp;
                 <input type="button" value="GET" onclick="getroom();" class="divbutton"/></td></tr>


         <tr><td>From_Date</td><td><input type="text" id="txtfromdate"/></td></tr>
         <tr><td>TO-date</td><td><input type="text" id="txttodate"/></td></tr>
         <tr><td>Room_Category</td><td><input type="text" id="txtroomcategory"  readonly="readonly"  value="<%=roomcategory%>"/></td></tr>
         <tr><td>No_Of_Guest</td><td><input type="text" id="txtnoofguestname"/></td></tr>
         <tr><td>Charge</td><td><input type="text" id="txtcharge"/></td></tr>
         <tr><td>Purpose</td><td><input type="text" id="txtpurpose"/></td></tr>



         <tr><td>Booking-Amount</td><td><input type="text" id="txtbookingamount"/></td></tr>



         <tr><td colspan="2" align="center"><BR><input type="button" value="SUBMIT" onclick="roombook();" class="divbutton"/></td></tr>
         <tr><td colspan="2" align="center"><div id="divroomsbycategory"></div></td></tr>
    </table>
</center>

</div>  
         </font>    
         <style>
            .divbutton:hover
            {
                border: solid white;
               background-color:  seagreen;
            }
            .divcenter:hover


            {
                 border: solid;
                border-top-color:  white;
                border-bottom-color:  white;
                border-left-color: white;
                border-right-color: white;


            }
            .image
            {
                width: 100%;
                height: 600px;
                background-image: url("images/332.jpg");
            }
        </style>

bookrooms.jsp bookrooms.jsp

<%@page import="utilitiespackage.Date"%>
<%@page import="java.sql.Connection"%>
<%@page import="dbpackage.DBConnector"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="validationspackage.Validations"%>

  <%
    try
    {
String receiptno=request.getParameter("receiptno");
String name=request.getParameter("name");
String address=request.getParameter("address");
String idproof=request.getParameter("idproof");
String dob=request.getParameter("dob");
String gender=request.getParameter("gender");
String contact=request.getParameter("contact");
String roomno=request.getParameter("roomno");
String fromdate=request.getParameter("fromdate");
String todate=request.getParameter("todate");
String roomcategory=request.getParameter("roomcategory");
String noofguestname=request.getParameter("noofguestname");
String charge=request.getParameter("charge");
String purpose=request.getParameter("purpose");

String bookingamount=request.getParameter("bookingamount");

 //Connection con=DBConnector.getConnection(session);

PreparedStatement ps=DBConnector.getPreparedStatement(session, "insert into roomregister values ( ?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
ps.setString(1,receiptno);
ps.setString(2,name);
ps.setString(3,address);
ps.setString(4,idproof);
ps.setString(5,contact);
ps.setString(6,roomno);
ps.setString(7,fromdate);
ps.setString(8,roomcategory);
ps.setString(9,noofguestname);
ps.setString(10,charge);
ps.setString(11,purpose);
ps.setString(12,gender);
ps.setString(13,dob);
ps.setString(14,bookingamount);

Date d1=new Date(fromdate);
Date d2=new Date(todate);
for(;Date.compare(d1, d2)<0;d1.advance())
{
    ps.setString(6, "" + d1);
    ps.executeUpdate();
}




out.println(Validations.setSuccess("Booked"));

//String message=Validations.setSuccess("deleted");
//out.println(message);
    }
    catch(Exception ex)
    {
        System.out.println(ex);
        out.println(Validations.setError(ex));

    }
%>

my database table: 我的数据库表:

在此处输入图片说明

error that i am getting: 我得到的错误: 在此处输入图片说明

ps.setString(1,receiptno);

isn't that a "number" field and you are calling setString? 那不是一个“数字”字段,您正在调用setString吗?

The documentation for java.sql.PreparedStatement has this to say: java.sql.PreparedStatement 的文档说:

Note: The setter methods (setShort, setString, and so on) for setting IN parameter values must specify types that are compatible with the defined SQL type of the input parameter. 注意:用于设置IN参数值的setter方法(setShort,setString等)必须指定与输入参数的已定义SQL类型兼容的类型。 For instance, if the IN parameter has SQL type INTEGER, then the method setInt should be used. 例如,如果IN参数的SQL类型为INTEGER,则应使用setInt方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 获取ORA-01722:Spring数据查询中的数字无效 - Getting ORA-01722: invalid number in Spring Data query 获取无效数字异常:ORA-01722:在金额字段中使用十进制值执行查询时无效数字 - getting Invalid Number exception : ORA-01722: invalid number while executing query with decimal value in the amount field 在准备语句中执行 IN 子句时出现无效数字异常(ORA-01722) - invalid number exception(ORA-01722) while executing IN clause in preparedstatement 错误 --&gt; java.sql.SQLSyntaxErrorException: ORA-01722: 无效号码 - ERROR --> java.sql.SQLSyntaxErrorException: ORA-01722: invalid number Hibernate Map抛出 - ORA-01722:无效的数字错误 - Hibernate Map throws - ORA-01722: invalid number error 错误 java.sql.SQLException: ORA-01722: 运行准备好的语句以更改序列时数字无效 - ERROR java.sql.SQLException: ORA-01722: invalid number while running a Prepared Statement to alter a Sequence ORA-01722:更新中的数字无效 - ORA-01722: invalid number exception in update ORA-01722 执行 PreparedStatement 时出错 - ORA-01722 error while executing PreparedStatement ORA-01722:使用Hibernate时号码无效 - ORA-01722: invalid number when using Hibernate java.sql.SQLSyntaxErrorException:ORA-01722:refcursor上的resultSet.next()时数字无效,我不明白为什么? - java.sql.SQLSyntaxErrorException: ORA-01722: invalid number while resultSet.next() on refcursor and I don't understand why?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM