Pular para o conteúdo

Novos recursos do Oracle Database 12c para limitar o número de registros retornados em um Select

SQL Query Row Limits and Offsets

No Oracle Database 12c, foi introduzida a row_limiting_clause no comando Select. Esta nova cláusula limita o número de registros retornados em um Select de forma mais efetiva do que as releases anteriores do banco de dados Oracle.

Os novos keywords OFFSET e FETCH fornecem o padrão ANSI SQL para limitar o número de linhas retornadas e para especificar uma linha de partida para o conjunto de retorno. 

SQL>create table tabela_teste (codigo number, nome varchar2(20));

Table created. 

insert into tabela_teste values (1,'Alex');
insert into tabela_teste values (2,'Joao');
insert into tabela_teste values (3,'Maria');
insert into tabela_teste values (4,'Pedro');
insert into tabela_teste values (5,'Paulo');
insert into tabela_teste values (6,'Fernando');
insert into tabela_teste values (7,'Rafael');
insert into tabela_teste values (8,'Samuel');
insert into tabela_teste values (9,'Daniel');
insert into tabela_teste values (10,'Luciano');
commit;

Commit complete.

SQL> select * from tabela_teste order by codigo desc fetch first 5 rows only;

   CODIGO NOME
---------- --------------------
    10 Luciano
     9 Daniel
     8 Samuel
     7 Rafael
     6 Fernando

SQL> select * from tabela_teste order by codigo desc offset 4 rows fetch next 4 rows only;

   CODIGO NOME
---------- --------------------
     6 Fernando
     5 Paulo
     4 Pedro
     3 Maria

SQL> select * from tabela_teste order by codigo desc fetch first 20 percent rows only;

   CODIGO NOME
---------- --------------------
    10 Luciano
     9 Daniel

Referências

Abraço

Alex Zaballa

Alex Zaballa

Alex Zaballa, formado em Análise de Sistemas, é especialista em Banco de Dados Oracle com sólidos conhecimentos em Servidores de Aplicação e Sistemas Operacionais; trabalha com Oracle há 15 anos, é ORACLE ACE Director, certificado OCM Database 11G / Cloud e conta com mais de 140 outras certificações em produtos da Oracle. Alex também é um dos fundadores do Grupo de Usuários Oracle de Angola (GUOA), participa do Grupo de Usuários de Tecnologia Oracle Brasil (GUOB) e é membro do time OraWorld.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress