Those are not quotes in the sql, those are the quotes required for the
string identifier.

My question is how can one use such multiple statements within the ibatis
sqlmap:

set @sql = concat( "select
             iams_id as iamsId
            ,division_name as divisionName
            ,region_name as regionName
            ,isactive as isActive
           from user_approvers
       limit ", #from#, ",", (#from#-#to#+1) );
    prepare stmt from @sql;
    execute stmt;
    drop prepare stmt;

Is this supported, as it is a combination of DDL and DML statements...?

Thanks,
Anoop


On Mon, Aug 24, 2009 at 9:39 AM, Poitras Christian <
christian.poit...@ircm.qc.ca> wrote:

> MySQL doesn't need quotes around limit.
> It should be limit #from# (#from#-#to#+1)
>
> http://dev.mysql.com/doc/refman/5.0/en/select.html
>
> Christian
>
> -----Original Message-----
> From: Anoop kumar V [mailto:anoopkum...@gmail.com]
> Sent: Monday, August 24, 2009 9:13 AM
> To: user-java@ibatis.apache.org
> Subject: Re: Execute multiple statements (pagination query port from oracle
> to mysql)
>
> Anyone? Please help.
>
> On 8/21/09, Anoop kumar V <anoopkum...@gmail.com> wrote:
> > This is an attempt to convert the pagination query using rownum in
> > Oracle to an equivalent pagination query using limit in mysql.
> >
> > I have an existing application that uses an Oracle database in
> production.
> > I
> > am trying to run the same application using mysql on my laptop. The
> > entire application and sql statements work perfectly fine, except for
> > those parts and sql's that use pagination. The pagination is achieved
> > using oracle's rownum feature and takes as input #from# and #to#.
> >
> > I understand that there is no equivalent in mysql except for the limit
> > clause. So after some effort I have been able to get the same results
> > in mysql using a set of sql statements that accept the #from# and #to#
> > input parameters.
> >
> > So just to illustrate, one of my oracle pagination queries was
> > something like (as an entry in my sqlmap):
> > **********************
> >   <select id="getUserApprovers" resultClass="ad.UserApprover"
> > parameterClass="java.util.Map">
> >     select         iams_id as iamsId        ,division_name as
> > divisionName        ,region_name as regionName        ,isactive as
> isActive
> >     from (
> >           select              iams_id
> > ,division_name              ,region_name              ,isactive
> > ,row_number() over (order by division_name, region_name) rn          from
> > user_approvers )
> >     where rn between #from# and #to#
> >     order by rn
> > </select>
> > **********************
> > Converted, the same sql in mysql was something like the following:
> > **********************
> >   <select id="getUserApprovers" resultClass="ad.UserApprover"
> > parameterClass="java.util.Map">
> >     set @sql = concat( "select
> >              iams_id as iamsId
> >             ,division_name as divisionName
> >             ,region_name as regionName
> >             ,isactive as isActive
> >            from user_approvers
> >        limit ", #from#, ",", (#from#-#to#+1) );
> >     prepare stmt from @sql;
> >     execute stmt;
> >     drop prepare stmt;
> >   </select>
> > **********************
> >
> > The mysql sql seems to work just like I want when I try it at the
> > mysql prompt.
> > When I tried it in the sqlmap I got errors like this:
> > **********************
> > Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You
> > have an error in your SQL syntax; check the manual that corresponds to
> your MySQL
> > server version for the right syntax to use near ';     prepare stmt from
> > @sql;     execute stmt;     drop prepare stmt' at line 1
> > **********************
> > what is the correct way of using it in the sqlmap? Should I use
> > executeBatch? I do not want to have to change my application logic to
> > make it work with both oracle and mysql - is there any other way? And
> > of course I do not want to install oracle on my laptop either.
> >
> > Any help is much appreciated.
> >
> > Thanks,
> > Anoop
> >
>
>
> --
>
> Thanks,
> Anoop
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org
> For additional commands, e-mail: user-java-h...@ibatis.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org
> For additional commands, e-mail: user-java-h...@ibatis.apache.org
>
>

Reply via email to