Announcement

Collapse
No announcement yet.

ORA-01722: invalid number

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ORA-01722: invalid number

    Hallo,
    ich habe ein altbekanntes Problem, das mir während meiner Arbeit mit meiner OracleDB auch schon öfter untergekommen ist und ich irgendwie immer umgehen konnte. Allerding weiß ich im Moment nicht was der Fehler ist oder ich anders machen könnte. Es handelt sich hierbei um einen einfaches Delete-Statement:
    Code:
    try {
    			System.out.println("Fehler bei delete");
    			pstmt = con.prepareStatement("Delete from processstepnote where psid = ? and shortdescription = ?");
    			pstmt.setInt(1, psid2);
    			pstmt.setString(2, sdesc);
    			pstmt.executeUpdate();
    			pstmt.close();
    			con.close();
    			
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    Ist daraus bereits ersichtlich wo der Fehler liegt?

  • #2
    Originally posted by Br4ve View Post
    Code:
    try {
    			pstmt = con.prepareStatement("Delete from processstepnote where psid = ? and shortdescription = ?");
    			pstmt.setInt(1, psid2);
    			pstmt.setString(2, sdesc);
    Ist daraus bereits ersichtlich wo der Fehler liegt?
    Möglicherweise:
    -Der psid Parameter psid2 ist evtl undefiniert.
    -Der sdesc Parameter ist offenbar vom Typ String und benötigt vielleicht Anführungszeichen. Ich weiß nicht, ob SetString die schon liefert. Falls nein müssen sie noch eingebaut werden.
    Gruß, defo

    Comment


    • #3
      Das kann ich eigentlich beides ausschließen, der psid2 parameter ist auf jeden Fall definiert und setString liefert auch anführungszeichen meines wissens. Im Internet stand irgendwas von einem fehlerhaften Vergleich http://oraculix.wordpress.com/2008/1...nvalid-number/ Aber auch das ist eigentlich nicht der Fall. Das Statement wird auch richtig ausgeführt und funktioniert eigentlich problemlos, blos diese Exception tritt halt irgendwie auf...

      Comment


      • #4
        Originally posted by Br4ve View Post
        Das kann ich eigentlich beides ausschließen,
        .. blos diese Exception tritt halt irgendwie auf...
        Vielleicht ein Trigger an der Tabelle? Loggingtabelle, ..?
        Wenn das Statement ausgeführt wird UND der Fehler auftritt, dann passiert da was relativ gruseliges...

        P.S.: Was meinst Du eigentlich mit altbekannt?
        Gruß, defo

        Comment


        • #5
          Originally posted by Br4ve View Post
          Ist daraus bereits ersichtlich wo der Fehler liegt?
          Stimmen die Datentypen überein? Also ist psid in der Tabelle processstepnote wirklich nummerisch und shortdescription ein VARCHAR2 Feld?
          Falls nein, dann musst Du die Datentypen im Java Code entsprechend anpassen, da ansonsten aufgrund der impliziten Konvertierung, die Oracle hier vornehmen muss, genau eine solche Fehlerkonstellation auftreten kann.

          Dim
          Zitat Tom Kyte:
          I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

          Comment

          Working...
          X