Аналогично шпаргалке по MySQL - подборка запросов для ORACLE.
1. Выгрузить ограниченное количество строк (11 в данном примере) из таблицы (аналог LIMIT в MySQL):
SELECT * FROM (
SELECT t.*, ROWID
FROM TABLE_NAME t
) WHERE ROWNUM <= 11
Альтернативный вариант (более простой, без вложенного запроса):
SELECT * FROM docs
ORDER BY id DESC /* если нужны самые последние записи */
FETCH FIRST 11 ROWS ONLY
SELECT * FROM docs
ORDER BY id ASC/* если нужны самые первые записи */
FETCH FIRST 11 ROWS ONLY
2. Увеличить сиквенс для столбца DOC_ID на +1:
SELECT S_DOC_ID.nextval AS id FROM dual
3. Увеличить сиквенс для столбца DOC_ID на +2:
SELECT S_DOC_ID.nextval AS id FROM (SELECT LEVEL FROM dual CONNECT BY LEVEL <= 2)
4. Получить текущее значение сиквенса для столбца DOC_ID:
SELECT S_DOC_ID.currval as id FROM dual
Примечание: Если SQL-запрос выполняется в рамках нового коннекшена к БД, то в ответе получим:
[72000][8002] ORA-08002: последов. S_DOC_ID.currval еще не определен в этом сеансе Position: 7
В этом случае нужно сначала выполнить запрос на увеличение сиквенса (см. п. 2 или 3), потом уже выполнять SQL-запрос на получение текущего значения сиквенса.
Продолжение следует...