Para pular os 50 primeiros registros em Oracle PL/SQL, você pode usar a cláusula `OFFSET` junto com `FETCH` (disponível a partir do Oracle 12c).
Aqui está um exemplo prático:
sql
SELECT *
FROM minha_tabela
ORDER BY id
OFFSET 50 ROWS FETCH NEXT 100 ROWS ONLY;
```
Explicação:
- `ORDER BY id` → é **obrigatório** para garantir a ordem dos registros.
- `OFFSET 50 ROWS` → ignora os primeiros 50 registros.
- `FETCH NEXT 100 ROWS ONLY` → retorna os próximos 100 registros (pode ajustar conforme necessário).
### Se estiver em versão anterior ao Oracle 12c (sem suporte a `OFFSET`):
Você pode usar uma subquery com `ROWNUM`:
sql
SELECT *
FROM (
SELECT t.*, ROWNUM r
FROM (
SELECT * FROM minha_tabela ORDER BY id
) t
WHERE ROWNUM <= 150
)
WHERE r > 50;
```
- Aqui, a subquery interna ordena os dados.
- O filtro `ROWNUM <= 150` garante que só pegue até o registro 150.
- O filtro externo `r > 50` remove os primeiros 50.