Аналогично шпаргалке по MySQL - подборка запросов для ORACLE.

Шпаргалка - разные запросы для 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-запрос на получение текущего значения сиквенса.

 

 

 

Продолжение следует...

 

Комментарии (0)

Здесь не опубликовано еще ни одного комментария

Оставьте свой комментарий

  1. Опубликовать комментарий как Гость.
0 Значки
Вложения (0 / 3)
Поделитесь своим местоположением
Яндекс.Метрика
Сайт работает на быстром VPS/VDS хостинге от FASTVPS