cancel
Showing results for 
Search instead for 
Did you mean: 

Database exception for prepared statement

Former Member
0 Kudos

Hi,

My Java code opens a connection and creates a prepared statement like this

connnection.prepareStatement(TEST1)

where TEST1 is

update D_SlaStoreRollup set (Expiration, SampleTime ) = (?,?) WHERE MeasuredObjectId = ?

which works fine, but the second statement TEST2 is

update D_SlaStoreRollup set (Expiration, ConsecutiveMinutes ) = (?,?) WHERE MeasuredObjectId = ?

arrises an DatabaseException:

Caused by: com.sap.dbtech.jdbc.exceptions.DatabaseException: [-3019] (at 68): Invalid exponent

at com.sap.dbtech.jdbc.packet.ReplyPacket.createException(ReplyPacket.java:64)

at com.sap.dbtech.jdbc.ConnectionSapDB.throwSQLError(ConnectionSapDB.java:984)

at com.sap.dbtech.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:622)

at com.sap.dbtech.jdbc.CallableStatementSapDB.sendCommand(CallableStatementSapDB.java:1808)

at com.sap.dbtech.jdbc.StatementSapDB.sendSQL(StatementSapDB.java:923)

at com.sap.dbtech.jdbc.CallableStatementSapDB.doParse(CallableStatementSapDB.java:231)

at com.sap.dbtech.jdbc.CallableStatementSapDB.constructor(CallableStatementSapDB.java:184)

at com.sap.dbtech.jdbc.CallableStatementSapDB.<init>(CallableStatementSapDB.java:78)

at com.sap.dbtech.jdbc.ConnectionSapDB.prepareStatement(ConnectionSapDB.java:871)

at com.sap.dbtech.jdbc.trace.Connection.prepareStatement(Connection.java:276)

at com.heroix.firenze.common.rdb.RdbConnection.prepareStatement(RdbConnection.java:109)

at com.heroix.firenze.consolidator.rdb.DSlaStoreRollupTable.initSql(DSlaStoreRollupTable.java:82)

It also works fine for this statement:

update D_SlaStoreRollup set ConsecutiveMinutes = ? WHERE MeasuredObjectId = ?

The documentation says:

A numeric final or temporary result is greater or less than the values which can be represented by a floating point number.

A numeric value is greater or less than permitted by the data type of a specified column.

But I am sure how it is related to prepared statements.

Any suggestions, ideas would be great.

Thank you very much,

Irina

Edited by: Irina Shirinsky on Aug 21, 2009 5:35 PM

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Ok, I figured it out. It works fine in this form:

update D_SlaStoreRollup set Expiration = ?, ConsecutiveMinutes = ? where MeasuredObjectId = ?Thanks,

Edited by: Irina Shirinsky on Aug 21, 2009 12:20 PM

Former Member
0 Kudos

I am not a PL/SQL expert, but have you tried to execute directly using UI interface, like "MS SQL Express" for MS SQL server, or phpPgAdmin 4.0.1 for Postgre SQL database ?

I sometimes would try the wrong query, and when I corrected the query and confirmed it on the UI interface, everything was ok.