PL SQL

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
JSquare
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 14
Registrado em: Qui, 02 Set 2010 9:38 am
Localização: Recife - PE

Saudações PessoALL...

Gostaria de obter uma explicação a respeito do uso desse trecho de comando:
LPAD(' ', 2 * LEVEL - 1)

...entendi que ele retorna uma consulta hierárquica, mas gostaria de entender o que o trecho acima citado faz...
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

vai te retornar uma string com espaço em branco do tamanho que resultar nessa conta ai 2*level-1
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5018
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Na realidade, o LEVEL é um número que indica o nivel da consulta hierárquica. Esse comando por si só, não faz a "mágica" e sim o CONNECT BY.

Então: esse comando apenas FORMATA colocando espaços em branco na frente do campo afim de ficar facil de entender a hierarquia.

Exemplo:

Selecionar tudo

LEVEL  SAIDA
1      ABC
2        CCCCC
1      CCCVVV
2        ASDASASA
3          SDSADASD


Esse LPAD coloca esses espaços em branco na frente.
dudu0566
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 74
Registrado em: Seg, 06 Ago 2007 3:59 pm
Localização: Campinas - SP
Eduardo Gomes

Pra tentar exemplificar, veja este código:

Selecionar tudo

select lpad(' ',(1+level-1),' ')||'teste'
from dual
connect by level <= ((10-1)+1)
abraços,
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes