2016-04-20 10 views
0

こんにちはnoobの質問申し訳ありませんoracleにかなり新しいを選択するが、私はMySQLの専門家の多くの午前いくつかの行をフェッチする方法を見つけるカント:ここではPOracleのSQLの開発者は、10行

SELECT * from aa.xxx 
OFFSET 10 ROWS 
FETCH NEXT 
10 ROWS ONLY ; 

はエラーですSQL Developerの

ORA-00933:SQLコマンドがない正しく 00933. 00000を終了 - "SQLコマンドが正常に終了しない" *原因:
処置:行でエラー:2カラム:8

+0

が不足していますか?その場合は、pl/sqlとカーソルを使用してこれを実行する必要があります。 – Beege

答えて

0

使用Metacolumn ROWNUM

SELECT * FROM (
    SELECT ROWNUM recno, t.* 
    FROM RLFRJ.SP35_V_EMPORIUM t 
    ) 
WHERE recno BETWEEN 10 AND 20 
+0

非常に大きなデータベースを持っていても、シームレスですがパフォーマンスに問題はありません。 – Pascal

+0

はい、正しいですが、OFFESET/FETCH NEXTも遅いです。内部セレクトに良いWHERE-predicateを適用することが重要です。 – oratom

0

のOrderByは、あなたが "いくつかの行をフェッチ" と言うとき、あなたが行を反復処理することを計画している

SELECT * from aa.xxx 
ORDER BY XXXXXXX 
OFFSET 10 ROWS 
FETCH NEXT 10 ROWS ONLY ; 
+0

まだ動作していません – Pascal

+0

エラーが表示されたら、それでも同じエラーですか? – piyushj

+0

はいまだ同じエラー – Pascal

関連する問題