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.
    

  

Reply via email to