Oracle Certified Associate Oracle - SQL/PLSQL (OCE - Exame 1Z0-047) Mind Map on Capitulo 17 - Hierarchical Retrieval, created by RENATO PASQUINI on 26/04/2016.
O objetivo de query
hierarquicas é montar uma
arvore geanalógica de registros
que se relacionam com outros
registros de uma mesma tabela
O dado não é armazenado no banco
de dados de forma hierarquica
Linhas da tabela podem se
relacionar com registros pai ou
registros filho.
Create a tree-structured report
Format hierarchical data
Pseudocolumn
utilizadas na seleção
de uma query
LEVEL - Retorna o nível
que o registro pertence
a hierarquia.
retorna 1
para os
registros raiz
da arvore
(root)
Retorna
2
para
os
filhos
Retorna
3 para os
registros
netos
Retorna
N de
acordo
com o
nível
CONNECT_BY_ROOT
SYS_CONNECT_BY_PATH
CONNECT_BY_ISLEAF
CONNECT_BY_ISCYCLE
Clausulas exclusivas
START WITH
Determina o inicio da query
hierarquica. Basicamente
determina o registro raiz da
arvore.
Uma query pode existir mais de um inicio de raiz
CONNECT BY PRIOR
Determina ao relacionamento entre
os registros pai e registros filho da
hierarquia
Determina a direção que a
arvore irá caminhar de acordo
com a posição do Operador
PRIOR
Exclude branches from the tree structure
Para entender como a exclusão de nós ou toda
uma cadeia a partir de um nó é necessário
entender a ordem de execução de uma query
hierarquica.
Primeiro é avaliado o relacionamento
(join), quando existir, sendo a junção
especificada na clausula FROM ou
clausula WHERE
Em seguida, a condição CONNECT_BY é avalida
Por fim, a clausula WHERE é avaliada
Logo ao declara uma restrição na
clausula WHERE, a mesma só é
executada após a query retornar
toda a arvore hierarquica. E retira
apenas os nós de acordo com a
validação da clausua WHERE.
Exclusão de um nó e todos os seus filhos, deve-se utilizar a condição
dentro da clausula CONNECT BY