A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Com coleções, cursor não é mais necessário

Apresentações semelhantes


Apresentação em tema: "Com coleções, cursor não é mais necessário"— Transcrição da apresentação:

1 Com coleções, cursor não é mais necessário
III - Oracle 9i Com coleções, cursor não é mais necessário

2 Cursor Não É Mais Necessário
Considerando que agora dispõe-se de variáveis do tipo coleção  varray ou nested table , não há mais necessidade de definir cursores: uma coleção de valores recuperada de um SELECT é armazenada diretamente em uma variável-coleção compatível

3 DECLARE TYPE NumTab IS TABLE OF emp.empno%TYPE; TYPE NameTab IS TABLE OF emp.ename%TYPE; enums NumTab; -- no need to initialize names NameTab; BEGIN SELECT empno, ename BULK COLLECT INTO enums, names FROM emp; ... END;

4 CREATE TYPE Coords AS OBJECT
(x NUMBER, y NUMBER); CREATE TABLE grid (num NUMBER, loc Coords); INSERT INTO grid VALUES(10, Coords(1,2)); INSERT INTO grid VALUES(20, Coords(3,4)); DECLARE TYPE CoordsTab IS TABLE OF Coords; pairs CoordsTab; BEGIN SELECT loc BULK COLLECT INTO pairs FROM grid; -- now pairs contains (1,2) and (3,4) END;

5 Restrições Note que BULK COLLECT INTO tem uma limitação: se a lista do SELECT tem i elementos (p.e., empno, ename), então devem ser declaradas i variáveis do tipo coleção (p.e., enums, names)

6 Exercícios Implemente o método nomes_estrelas da interface Metodos_Filme interface Metodos_Filme { float duração_em_horas() raises(duração não encontrada) /* converte duração em min para duração em hh:min */; nomes_estrelas(out Set<Estrela>) /* retorna o conjunto das estrelas de um filme */; nome_estúdio(out string) raises (estúdio não encontrado) /* retorna o nome do estúdio que realizou o filme */; ... Obs: Usar a construção SELECT ... BULK COLLECT INTO ...


Carregar ppt "Com coleções, cursor não é mais necessário"

Apresentações semelhantes


Anúncios Google