SQL Developerで以下のクエリを実行しています。
SELECT * FROM Person where person_name='rahul' order by created_time desc limit 10;
SQL Developerを実行すると、以下のエラーが表示されます。
ORA-00933: SQL command not properly ended
00933. 00000 - "SQL command not properly ended"
*Cause:
*Action:
参考までに以下のリンクを使用しました。
https://www.techonthenet.com/sql/select_limit.php
私はすでに試しました
SELECT * FROM Person where person_name='rahul' order by created_time desc OFFSET 5 ROWS FETCH NEXT 10 ROWS ONLY;
ORA-00933: SQL command not properly ended
00933. 00000 - "SQL command not properly ended"
*Cause:
*Action:
Error at Line: 1 Column: 75
OFFSETはキーワードとして扱われないことに注意してください。
以下のクエリを使用して問題を解決しました。
SELECT * FROM Person where person_name='rahul' and rownum between 1 and 2 order by created_time desc;
はい、それは、Oracleがlimit
句を持たないかサポートしていないため、ORA-00933
エラー。むしろ、FETCH .. OFFSET
のような構成
SELECT * FROM Person
where person_name='rahul'
order by created_time desc
OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY;
StackOverflowには多くの同様の質問があります。同じものを検索してみるべきだった。この例: 注文後にOracleクエリによって返される行数を制限するにはどうすればよいですか?
あなたが取得する場合
ORA-00933: SQL command not properly ended
00933. 00000 - "SQL command not properly ended"
*Cause:
*Action:
Oracle 12を実行していないことが原因である可能性があります。その場合、いくつかの回避策があり、すべてサブクエリとほとんどのずさんなものに関係しています。使った
select * from
( select column_name, ROWNUM rnum from
( select * from table_name)
where ROWNUM <= max_row )
where rnum >= min_row order by column_name;