ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vadim <deadmo...@gmail.com>
Subject Re: ORA-06572: Function has OUT parameters
Date Thu, 11 Sep 2008 20:25:47 GMT
I didn't really get your solution. My problem is - you can't have a function
returning a value AND having an OUT parameter in a SQL statement.Question
is: if I convert function 'with_out'

<select id="someSelect"
       resultClass="SomeClass">

        SELECT  id, class
        FROM TABLE(with_out
(#in,mode=IN,jdbcType=VARCHAR#,#out,mode=OUT,jdbcType=VARCHAR#) )
</select>

 to a procedure with one more OUT parameter

<procedure id="someSelect">
        with_out
(#in,mode=IN,jdbcType=VARCHAR#,#out,mode=OUT,jdbcType=VARCHAR#,
#result,mode=OUT,jdbcType= ????? #) )
</procedure>

where #result# is
TYPE some_type AS TABLE OF some_object

how do I map it to a list of java classes? Is it possible with the help of a
typehandler?


On Thu, Sep 11, 2008 at 5:43 PM, Clinton Begin <clinton.begin@gmail.com>wrote:

> Try this, if it's too much to put in your SQL, you can use an external
> parameter map.
>
> #in,jdbcType=VARCHAR,mode=OUT#,
> #out,jdbcType=VARCHAR,mode=OUT#
>
> Clinton
>
>
> On Thu, Sep 11, 2008 at 7:09 AM, Vadim <deadmoro3@gmail.com> wrote:
> > Hello,
> >
> > I've been thinking how to do this for too long now. Ibatis version is
> > 2.1.0.565, Oracle version is 9. What I'm trying to do is map a statement
> to
> > a Java class and get one varchar OUT parameter. PL/SQL function is like
> >
> > function with_out (
> >     in_param     in varchar2,
> >     out_message    out varchar2
> > ) return some_type;
> >
> > TYPE some_type
> >  AS TABLE OF some_object
> >
> > TYPE SOME_OBJECT as object (
> >     id            number(9),
> >     class  varchar2(16)
> > );
> >
> > class SomeClass{
> > [id, class] setters, getters (as usual)
> > }
> >
> > <select id="someSelect"
> >        resultClass="SomeClass">
> >
> >         SELECT  id, class
> >         FROM TABLE(with_out (#in:VARCHAR#,#out:VARCHAR#) )
> > </select>
> >
> > IbatisDatastore.getSqlMapInstance().queryForList("someSelect", paramMap);
> >
> > That's what I have now and what gives me a 'Function has an OUT
> parameter'
> > error. One solution I see is changing function to procedure and adding
> one
> > more out parameter. Unfortunately, I'm not familiar with Ibatis enough to
> be
> > able to map 'some_type' OUT parameter to 'SomeClass'.
> > Would be grateful for any advice you can give!
> >
> >
>

Mime
View raw message