[ http://issues.apache.org/jira/browse/IBATIS-145?page=all ]
Brandon Goodin closed IBATIS-145:
---------------------------------
Resolution: Fixed
The original reported issue was fixed some time ago and not closed. If there
are other related issues then another bug report should be opened.
> oracle's user-defined objects are not supported as store procedure out
> parameters
> ---------------------------------------------------------------------------------
>
> Key: IBATIS-145
> URL: http://issues.apache.org/jira/browse/IBATIS-145
> Project: iBatis for Java
> Type: Improvement
> Components: SQL Maps
> Versions: 2.1.0
> Environment: oracle and maybe any others db that support user defined data
> types
> Reporter: ppz4j
> Assignee: Brandon Goodin
>
> we have to call legacy oracle store procedure with named array types as
> output parameters. When I try it I get an invalid parameter type exception
> This problem arises because to use these params the SQLExecutor class should
> call the ?callableStatement.registerOutputParameters? method version with
> the typeName param. In fact the java doc of this method suggests "This
> version of the method registerOutParameter should be used for a user-defined
> or REF output parameter" and "To be portable, however, applications should
> always provide these values for user-defined and REF parameters. Although it
> is intended for user-defined and REF parameters, this method may be used to
> register a parameter of any JDBC type. If the parameter does not have a
> user-defined or REF type, the typeName parameter is ignored "
> To handle this problem I have made some changes in source code and dtd file,
> but I hope that in a next version this problem will be resolved.
>
> Following the changes that I have made to add this enhancement:
> Added property typeName to bean BasicParameterMapping, with set and get
> methods.
> Added code that load typeName param from xml in SqlMapParser and code that
> save it as property of the current instance of mapping.
> Changed the SQLExecutor, now before call the
> CallableStatement.registerOutputParameter the registerOutputParameters method
> checks if the typeName of the given map parameter is not null. If it so it
> calls the overloaded method registerOutParameter(int paramIndex,int
> sqlType,String typeName) instead of registerOutParameter(int paramIndex,int
> sqlType.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira