| Steve Ebersole - yeah its not working. setBoolean does call setBooleanInternal which does something like that internally:
this.parameterInt[this.currentRank][var3] = var2 ? 1 : 0;
where var2 is the actual boolean argument. So yes the driver itself is unable at all to do this which does match http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#34_05 which reads:
For example, to wrap a stored procedure that uses PL/SQL booleans, you can create a stored procedure that takes a character or number from JDBC and passes it to the original procedure as BOOLEAN, or, for an output parameter, accepts a BOOLEAN argument from the original procedure and passes it as a CHAR or NUMBER to JDBC. Similarly, to wrap a stored procedure that uses PL/SQL records, you can create a stored procedure that handles a record in its individual components (such as CHAR and NUMBER). To wrap a stored procedure that uses PL/SQL tables, you can break the data into components or perhaps use Oracle collection types.
Here is an example of a PL/SQL wrapper procedure MY_PROC for a stored procedure PROC that takes a BOOLEAN as input: PROCEDURE MY_PROC (n NUMBER) IS BEGIN IF n=0 THEN proc(false); ELSE proc(true); END IF; END; PROCEDURE PROC (b BOOLEAN) IS BEGIN ... END;
sigh ... sorry to bother you at all with that. |