I am not sure why java.lang.Short is not covered in the conversion
tables in the JDBC spec. Probably an oversite or just a spec bug. It
is reasonable to be supported since the other conversions are
supported.
I will discuss with the EG.
Markus Fuchs (JIRA) wrote:
[ http://issues.apache.org/jira/browse/DERBY-1500?page=comments#action_12424627 ]
Markus Fuchs commented on DERBY-1500:
-------------------------------------
This behavior is apparantly implemented by many major database vendors, e.g. Oracle, SQLServer, Sybase, and the Derby network server. Because it's undefined by the JDBC spec doesn't mean that it *must* not be provided for user convenience.
PreparedStatement#setObject(int parameterIndex, Object x) throws SQL Exception when binding Short value in embedded mode
------------------------------------------------------------------------------------------------------------------------
Key: DERBY-1500
URL: http://issues.apache.org/jira/browse/DERBY-1500
Project: Derby
Issue Type: Bug
Components: JDBC
Affects Versions: 10.1.1.0, 10.1.3.1
Environment: WindowsXP
Reporter: Markus Fuchs
Attachments: ShortTest.java
When trying to insert a row into the table
SHORT_TEST( ID int, SHORT_VAL smallint)
an exception is thrown, if the object value given to PreparedStatement#setObject(int parameterIndex, Object x) is of type Short. The exception thrown is:
--- SQLException ---
SQLState: 22005
Message: An attempt was made to get a data value of type 'SMALLINT' from a data value of type 'java.lang.Short'.
ErrorCode: 20000
SQL Exception: An attempt was made to get a data value of type 'SMALLINT' from a data value of type 'java.lang.Short'.
at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.ConnectionChild.newSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement.dataTypeConversion(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement.setObject(Unknown Source)
Tested on Derby 10.1.1.0 and 10.1.3.1. The same test runs fine in network mode.
|