[ 
https://issues.apache.org/jira/browse/DERBY-5788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13396575#comment-13396575
 ] 

Juergen Kissner commented on DERBY-5788:
----------------------------------------

Hi,

Looking at the Java documentation 
(http://docs.oracle.com/javase/1.4.2/docs/guide/jdbc/getstart/mapping.html#999493):
 

9.3.4 BOOLEAN
The JDBC type BOOLEAN, which is new in the JDBC 3.0 API, maps to a boolean in 
the Java programming language. It provides a representation of true and false, 
and therefore is a better match than the JDBC type BIT, which is either 1 or 0.

This part of the description refers to BOOLEAN; however, the last part of the 
sentence explicitly mentions the values 0 and 1.

Going back to the original meaning of "bit" (binary digit), "bit" is a digit. 
So it is at least unexpected if you cannot use the digits 0 and 1 (or string 
representations of them) in
prepstmt.setObject(pos, val, java.sql.Types.BIT).

- Juergen

                
> BIT support regression and confusing message in 10.8.2.2: 
> org.apache.derby.client.am.SqlException: Invalid character string format for 
> type BOOLEAN
> ---------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5788
>                 URL: https://issues.apache.org/jira/browse/DERBY-5788
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 10.8.2.2
>         Environment: Windows 7 (All)
>            Reporter: Radoslav Ivanov
>
> Scenario (on 10.8.2.2; with 10.5.1.1  the problem does not appear): when 
> setting BIT from this example :
> rsSch.createTab("Bit_Tab",sqlp,conn);
> String sMaxBooleanVal = rsSch.extractVal("Bit_Tab",1,sqlp,conn); //value is 
> “1“
> cstmt = conn.prepareCall("{call Bit_In_Min(?)}");
> cstmt.setObject(1,sMaxBooleanVal,java.sql.Types.BIT); //-> throws the 
> exception below
> Exception (Problem with not supporting “0” and “1” for the type BIT; 
> moreover, confusing message):
> java.sql.SQLDataException: Invalid character string format for type BOOLEAN.
>          at 
> org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown 
> Source)
>          at org.apache.derby.client.am.SqlException.getSQLException(Unknown 
> Source)
>          at org.apache.derby.client.am.PreparedStatement.setObject(Unknown 
> Source)
>          at 
> org.apache.commons.dbcp.DelegatingPreparedStatement.setObject(DelegatingPreparedStatement.java:166)
>          at 
> org.apache.commons.dbcp.DelegatingPreparedStatement.setObject(DelegatingPreparedStatement.java:166)
>          at 
> com.sun.ts.tests.jdbc.ee.callStmt.callStmt10.callStmtClient10.testSetObject48(callStmtClient10.java:812)
>          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>          at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>          at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to