Hi,
     I have custom TypeHandlers for accessing user defined data types
defined in our oracle database. I have codes like

ArrayDescriptor desc = ArrayDescriptor.createDescriptor("STRARRAY",
underLyingConnection);
                parameter = new ARRAY(desc, underLyingConnection,
arr.toArray());

The parameter STRARRAY is defined in another schema, Schema2 and my oracle
log in that I use from the application has execute permission on Schema2 and
logs in to another schema called Schema1. If I try access the userdefined
datatype by specifying as Schema2.STRARRAY or Schema1.STRARRAY or STRARRAY
directly Ibatis throws an

Caused by: java.sql.SQLException: invalid name pattern: Schema2.STRARRAY

The only way out for this problem was to have a synonym defined for the user
defined type say "STRARRAYSYNONYMN" in Schema1 and call it from the
typehandler like this

ArrayDescriptor desc = ArrayDescriptor.createDescriptor("STRARRAYSYNONYMN",
underLyingConnection)


 I am not sure why I can execute the first query from the SqlDeveloper but
not execute the same through Ibatis. Any idea on how to solve this problem?
When I tried to debug, it seemed like Ibatis was adding "Schema1." prefix to
the userdefined type by default. I am not sure why or what was causing this
behaviour.

Am I doing something wrong?


-Sundar

Reply via email to