Search code examples
oracle-databaseibatis

Ibatis and Oracle limit resultset


i have to change a sql mapping in Ibatis an I want to limit the resultset to 1000 rows for every of tipe "list".

I tried this:

<select id="list" parameterClass="common.dto.Dto" resultClass="common.Entity">
        SELECT *
        FROM table SOC
        LEFT OUTER JOIN SOCIETASEP SEP
        ON SEP.COSOCIETA = SOC.CODSOCIETA

        <dynamic prepend="WHERE">

        ROWNUM&lt;=1000

    <isNotEmpty prepend="AND" property="ragSoc">
        DSRAGSOC LIKE UPPER(#ragSoc#) || '%'
    </isNotEmpty>
        </dynamic>
</select>

But doesn't work. Ho to insert a static condition?

Thanks


Solution

  • Try to replace :

    ROWNUM&lt;=1000
    

    by:

    <![CDATA[ ROWNUM <= 1000 ]]>
    

    Something likes this:

    <select id="list" parameterClass="common.dto.Dto" resultClass="common.Entity">
            SELECT *
            FROM table SOC
            LEFT OUTER JOIN SOCIETASEP SEP
            ON SEP.COSOCIETA = SOC.CODSOCIETA
            where       
    <![CDATA[ ROWNUM <= 1000 ]]>
    
        <isNotEmpty prepend="AND" property="ragSoc">
            DSRAGSOC LIKE UPPER(#ragSoc#) || '%'
        </isNotEmpty>
    
    </select>
    

    HTH.