Article ID: 195471
Article Last Modified on 2/11/2005
*** Number Format Exception ***
java.lang.NumberFormatException: <garbage # here>
at java/lang/Integer.parseInt (Integer.java)
at java/lang/Integer.parseInt (Integer.java)
at java/sql/Timestamp.valueOf (Timestamp.java)
at com/ms/jdbc/odbc/JdbcOdbcCallableStatement.getTimestamp
(JdbcOdbcCallableStatement.java)
at com/ms/jdbc/odbc/JdbcOdbcCallableStatement.getObject
(JdbcOdbcCallableStatement.java)
at sdate.main (sdate.java:30)
-- start of SQL
create proc SimpleDate2
@i1 int output,
@i2 int output,
@i3 int output,
@Date4 datetime output
as
select @i1 = 666,
@i2 = 777,
@i3 = 888,
@Date4 = getdate()
return 999
--- End of SQL
The following Java will reproduce the error.
Timestamp tsDate = new Timestamp(System.currentTimeMillis());
int i=-1, iobj=-1,k;
try {
Class.forName("com.ms.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection"JDBC:ODBC:DRIVER={SQL
Server}; SERVER=(local);DATABASE=pubs;UID=<username>;PWD=<strong password>;";
for(i = 1; i < 100; i++ ) {
CallableStatement stmt = conn.prepareCall(" { ? = call
SimpleDate2(?, ?, ?, ?) }");
stmt.registerOutParameter(1, Types.SMALLINT);
for(k=2;k<5;k++){
stmt.setInt(k,k+999);
stmt.registerOutParameter(k, Types.INTEGER);
}
stmt.setObject(5, tsDate, Types.TIMESTAMP);
stmt.registerOutParameter(5, Types.TIMESTAMP);
int count = stmt.executeUpdate();
Object obj=stmt.getObject(5);
System.out.println(obj);
stmt.close();
System.gc();
}
conn.close();
}
catch(NumberFormatException nfe) {
System.out.println("*** Number Format Exception ***");
nfe.printStackTrace ();
}
}
Keywords: kbbug kbdatabase kbpending KB195471