[seasar-s2dao-dev:530] Re: OracleRownumPagingSqlRewriterについて

JUNDU [E-MAIL ADDRESS DELETED]
2007年 10月 30日 (火) 19:22:45 JST


JUNDUです。

SETO Azusa wrote:
> せとあずさです。
> 
> OracleでS2Pagerを使っていて気になったのですが、
> 
> もともとののS2Pagerは、オフセットが「1」ではじまるようになっています。(はず)

 むむむっ、私の認識では「0」と思っていました。

> ただしOracleRownumPagingSqlRewriterはmakeLimitOffsetSqlメソッドの中で
>         sqlBuf.append(offset + 1);
> しているため、これだとオフセットが「0」ではじまるようになっています。
> 
> これってOracleでページングするときは「0」でスタートするのが慣例とか
> そういう事情があるんでしょうか?

 MySQLやPostgreSQLのoffsetに合わせてあります。Oracle的には、1の方が楽なのです
けどね。Oracleの場合はオフセットではなく開始位置なので。

http://dev.mysql.com/doc/refman/5.1/en/select.html
http://www.postgresql.org/docs/8.2/static/queries-limit.html

 オフセットって、開始位置を動かす分量だと思うので、1行目から抽出=開始位置を動
かさない=オフセット0というイメージだと思います。


seasar-s2dao-dev メーリングリストの案内