[oracle_br] Consulta Hierarquica

2007-02-16 Por tôpico schmittfilho
Ola Amigos,

Preciso de uma dica de consulta hierarquica e gostaria de ver se 
vocês podem me ajudar no uso desse recurso. Vou explicar a situação:
Tenho 03 tabelas que devem me retornar um plano de orçamento por 
rubricas da seguinte maneira:
Projeto: Projeto Teste
1 - Despesas Gerais. R$ 15.000,00
 1.1 - Despesas de Pessoal.. R$ 8.000,00
  1.1.1 - Horas Consultoria. R$ 4.000,00
  1.1.2 - Horas Treinamento. R$ 4.000,00
 1.2 - Despesas Material R$ 7.000,00
  1.2.1 - Papel. R$ 3.000,00
  1.2.2 - Xerox. R$ 4.000,00

Eu uso uma tabela que possui as rubricas e um auto-relacionamento 
para montar a hierarquia entre eles. Outra tabela tem os codigos dos 
projetos e a outra eh a associacao entre as rubricas e os projetos, 
onde consta também o valor. Nessa tabela associacao guardo apenas o 
ultimo nível das rubricas.

Tem como fazer via SQL esse resultado?

Desde ja agradeço a colaboração.

Bruno



[oracle_br] Re: Consulta Hierarquica

2007-02-16 Por tôpico schmittfilho
Marco,

Já estou usando o level e a consulta ta funcionando parcialmente, 
apenas não consigo somar os valores nos niveis superiores... Segue o 
select que estou fazendo:

  select level nivel
,lpad('',level*2) || o.eledes elemento
,nvl(valor,0) valor
from elemento o
,(select el.elecod elem
,po.orcprjvlr valor
from elemento el
,projeto pr
,prjorcam po
  where el.elecod = po.elecod
and pr.prjcod = po.prjcod) proj
   where o.elecod = elem (+)
  start with o.elecodsup is null
connect by prior o.elecod = o.elecodsup

No ultimo nivel consigo os valores, mas nos superiores ta saindo 
zero...

Se puderes me ajudar, agradeço...

Bruno

--- Em oracle_br@yahoogrupos.com.br, FERNANDES Marco ASOFTTEK 
[EMAIL PROTECTED] escreveu

 Bruno,
 existe um recurso no Oracle para fazer isso.
  
 Segue trecho do manual para sua consulta.
  
 LEVEL
 You use LEVEL with the SELECT CONNECT BY statement to organize 
rows from a database table into a tree structure. LEVEL returns the 
level number of a node in a tree structure. The root is level 1, 
children of the root are level 2, grandchildren are level 3, and so 
on. 
  
 You specify the direction in which the query walks the tree (down 
from the root or up from the branches) with the PRIOR operator. In 
the START WITH clause, you specify a condition that identifies the 
root of the tree. 
 
 Qualquer dúvida é só mandar !
  
 Abraço,
 Marco.
 
  
 
 
 From: oracle_br@yahoogrupos.com.br 
[mailto:[EMAIL PROTECTED] On Behalf Of PUB: schmittfilho
 Sent: sexta-feira, 16 de fevereiro de 2007 09:30
 To: oracle_br@yahoogrupos.com.br
 Subject: [oracle_br] Consulta Hierarquica
 
 
 
 Ola Amigos,
 
 Preciso de uma dica de consulta hierarquica e gostaria de ver se 
 vocês podem me ajudar no uso desse recurso. Vou explicar a 
situação:
 Tenho 03 tabelas que devem me retornar um plano de orçamento por 
 rubricas da seguinte maneira:
 Projeto: Projeto Teste
 1 - Despesas Gerais. R$ 15.000,00
 1.1 - Despesas de Pessoal.. R$ 8.000,00
 1.1.1 - Horas Consultoria. R$ 4.000,00
 1.1.2 - Horas Treinamento. R$ 4.000,00
 1.2 - Despesas Material R$ 7.000,00
 1.2.1 - Papel. R$ 3.000,00
 1.2.2 - Xerox. R$ 4.000,00
 
 Eu uso uma tabela que possui as rubricas e um auto-relacionamento 
 para montar a hierarquia entre eles. Outra tabela tem os codigos 
dos 
 projetos e a outra eh a associacao entre as rubricas e os 
projetos, 
 onde consta também o valor. Nessa tabela associacao guardo apenas 
o 
 ultimo nível das rubricas.
 
 Tem como fazer via SQL esse resultado?
 
 Desde ja agradeço a colaboração.
 
 Bruno
 
 
 
  
 
 
 [As partes desta mensagem que não continham texto foram removidas]





[oracle_br] Re: Consulta Hierarquica

2007-02-16 Por tôpico schmittfilho
Oi Marco,

Não consegui solucionar o problema ainda...

Os resultados estão saindo assim:

 1 - Despesas Gerais... R$ 0,00
 1.1 - Despesas de Pessoal. R$ 0,00
 1.1.1 - Horas Consultoria. R$ 4.000,00
 1.1.2 - Horas Treinamento. R$ 4.000,00
 1.2 - Despesas Material... R$ 0,00
 1.2.1 - Papel. R$ 3.000,00
 1.2.2 - Xerox. R$ 4.000,00

A listagem traz a hierarquia da rubrica correta, mas na hora dos 
somatórios que acumulam as rubricas do nivel mais baixo ele não 
consegue resolver.

Tens mais algum recurso?

Bruno

--- Em oracle_br@yahoogrupos.com.br, FERNANDES Marco ASOFTTEK 
[EMAIL PROTECTED] escreveu

 Segue alguns exemplo simples do que passei:
 http://www.adp-gmbh.ch/ora/sql/connect_by.html
 http://www.psoug.org/reference/connectby.html
 http://philip.greenspun.com/sql/trees.html
  
 Abraço,
 Marco.
 
 
 
 From: oracle_br@yahoogrupos.com.br 
[mailto:[EMAIL PROTECTED] On Behalf Of PUB: FERNANDES 
Marco A SOFTTEK
 Sent: sexta-feira, 16 de fevereiro de 2007 09:46
 To: oracle_br@yahoogrupos.com.br
 Subject: RE: [oracle_br] Consulta Hierarquica
 
 
 
 Bruno,
 existe um recurso no Oracle para fazer isso.
 
 Segue trecho do manual para sua consulta.
 
 LEVEL
 You use LEVEL with the SELECT CONNECT BY statement to organize 
rows from a database table into a tree structure. LEVEL returns the 
level number of a node in a tree structure. The root is level 1, 
children of the root are level 2, grandchildren are level 3, and so 
on. 
 
 You specify the direction in which the query walks the tree (down 
from the root or up from the branches) with the PRIOR operator. In 
the START WITH clause, you specify a condition that identifies the 
root of the tree. 
 
 Qualquer dúvida é só mandar !
 
 Abraço,
 Marco.
 
 
 
 From: oracle_br@yahoogrupos.com.br mailto:oracle_br%
40yahoogrupos.com.br  [mailto:oracle_br@yahoogrupos.com.br 
mailto:oracle_br%40yahoogrupos.com.br ] On Behalf Of PUB: 
schmittfilho
 Sent: sexta-feira, 16 de fevereiro de 2007 09:30
 To: oracle_br@yahoogrupos.com.br mailto:oracle_br%
40yahoogrupos.com.br 
 Subject: [oracle_br] Consulta Hierarquica
 
 Ola Amigos,
 
 Preciso de uma dica de consulta hierarquica e gostaria de ver se 
 vocês podem me ajudar no uso desse recurso. Vou explicar a 
situação:
 Tenho 03 tabelas que devem me retornar um plano de orçamento por 
 rubricas da seguinte maneira:
 Projeto: Projeto Teste
 1 - Despesas Gerais. R$ 15.000,00
 1.1 - Despesas de Pessoal.. R$ 8.000,00
 1.1.1 - Horas Consultoria. R$ 4.000,00
 1.1.2 - Horas Treinamento. R$ 4.000,00
 1.2 - Despesas Material R$ 7.000,00
 1.2.1 - Papel. R$ 3.000,00
 1.2.2 - Xerox. R$ 4.000,00
 
 Eu uso uma tabela que possui as rubricas e um auto-relacionamento 
 para montar a hierarquia entre eles. Outra tabela tem os codigos 
dos 
 projetos e a outra eh a associacao entre as rubricas e os 
projetos, 
 onde consta também o valor. Nessa tabela associacao guardo apenas 
o 
 ultimo nível das rubricas.
 
 Tem como fazer via SQL esse resultado?
 
 Desde ja agradeço a colaboração.
 
 Bruno
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
 
  
 
 
 [As partes desta mensagem que não continham texto foram removidas]





[oracle_br] Re: Consulta Hierarquica

2007-02-16 Por tôpico schmittfilho
Marco,

Ja encaminhei a estrutura pro seu email e fico no aguardo...

Abraços
--- Em oracle_br@yahoogrupos.com.br, FERNANDES Marco ASOFTTEK 
[EMAIL PROTECTED] escreveu

 Bruno,
 se vc puder me mandar o que vc tem em mãos aí...
  
 precisaria da estrutura das 3 tabelas do seu join
 alguns dados de teste, e o seu SQL.
  
 Deve ser coisa boba mas sem isso fica complicado
 ver onde está o problema eu sei que o uso
 do connect by e start with tem umas limitações
 com relação à joins, subqueries mas no seu
 caso parece ser possível sim.
  
 abraço,
 Marco.
 
 
 
 From: oracle_br@yahoogrupos.com.br 
[mailto:[EMAIL PROTECTED] On Behalf Of PUB: schmittfilho
 Sent: sexta-feira, 16 de fevereiro de 2007 10:52
 To: oracle_br@yahoogrupos.com.br
 Subject: [oracle_br] Re: Consulta Hierarquica
 
 
 
 Oi Marco,
 
 Não consegui solucionar o problema ainda...
 
 Os resultados estão saindo assim:
 
 1 - Despesas Gerais... R$ 0,00
 1.1 - Despesas de Pessoal. R$ 0,00
 1.1.1 - Horas Consultoria. R$ 4.000,00
 1.1.2 - Horas Treinamento. R$ 4.000,00
 1.2 - Despesas Material... R$ 0,00
 1.2.1 - Papel. R$ 3.000,00
 1.2.2 - Xerox. R$ 4.000,00
 
 A listagem traz a hierarquia da rubrica correta, mas na hora dos 
 somatórios que acumulam as rubricas do nivel mais baixo ele não 
 consegue resolver.
 
 Tens mais algum recurso?
 
 Bruno
 
 --- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%
40yahoogrupos.com.br , FERNANDES Marco A SOFTTEK 
 mfernandes@ escreveu
 
  Segue alguns exemplo simples do que passei:
  http://www.adp-gmbh.ch/ora/sql/connect_by.html http://www.adp-
gmbh.ch/ora/sql/connect_by.html 
  http://www.psoug.org/reference/connectby.html 
http://www.psoug.org/reference/connectby.html 
  http://philip.greenspun.com/sql/trees.html 
http://philip.greenspun.com/sql/trees.html 
  
  Abraço,
  Marco.
  
  
  
  From: oracle_br@yahoogrupos.com.br mailto:oracle_br%
40yahoogrupos.com.br  
 [mailto:oracle_br@yahoogrupos.com.br mailto:oracle_br%
40yahoogrupos.com.br ] On Behalf Of PUB: FERNANDES 
 Marco A SOFTTEK
  Sent: sexta-feira, 16 de fevereiro de 2007 09:46
  To: oracle_br@yahoogrupos.com.br mailto:oracle_br%
40yahoogrupos.com.br 
  Subject: RE: [oracle_br] Consulta Hierarquica
  
  
  
  Bruno,
  existe um recurso no Oracle para fazer isso.
  
  Segue trecho do manual para sua consulta.
  
  LEVEL
  You use LEVEL with the SELECT CONNECT BY statement to organize 
 rows from a database table into a tree structure. LEVEL returns 
the 
 level number of a node in a tree structure. The root is level 1, 
 children of the root are level 2, grandchildren are level 3, and 
so 
 on. 
  
  You specify the direction in which the query walks the tree 
(down 
 from the root or up from the branches) with the PRIOR operator. In 
 the START WITH clause, you specify a condition that identifies the 
 root of the tree. 
  
  Qualquer dúvida é só mandar !
  
  Abraço,
  Marco.
  
  
  
  From: oracle_br@yahoogrupos.com.br mailto:oracle_br%
40yahoogrupos.com.br  mailto:oracle_br%
 40yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br 
mailto:oracle_br%40yahoogrupos.com.br  
 mailto:oracle_br%40yahoogrupos.com.br ] On Behalf Of PUB: 
 schmittfilho
  Sent: sexta-feira, 16 de fevereiro de 2007 09:30
  To: oracle_br@yahoogrupos.com.br mailto:oracle_br%
40yahoogrupos.com.br  mailto:oracle_br%
 40yahoogrupos.com.br 
  Subject: [oracle_br] Consulta Hierarquica
  
  Ola Amigos,
  
  Preciso de uma dica de consulta hierarquica e gostaria de ver se 
  vocês podem me ajudar no uso desse recurso. Vou explicar a 
 situação:
  Tenho 03 tabelas que devem me retornar um plano de orçamento por 
  rubricas da seguinte maneira:
  Projeto: Projeto Teste
  1 - Despesas Gerais. R$ 15.000,00
  1.1 - Despesas de Pessoal.. R$ 8.000,00
  1.1.1 - Horas Consultoria. R$ 4.000,00
  1.1.2 - Horas Treinamento. R$ 4.000,00
  1.2 - Despesas Material R$ 7.000,00
  1.2.1 - Papel. R$ 3.000,00
  1.2.2 - Xerox. R$ 4.000,00
  
  Eu uso uma tabela que possui as rubricas e um auto-
relacionamento 
  para montar a hierarquia entre eles. Outra tabela tem os codigos 
 dos 
  projetos e a outra eh a associacao entre as rubricas e os 
 projetos, 
  onde consta também o valor. Nessa tabela associacao guardo 
apenas 
 o 
  ultimo nível das rubricas.
  
  Tem como fazer via SQL esse resultado?
  
  Desde ja agradeço a colaboração.
  
  Bruno
  
  [As partes desta mensagem que não continham texto foram 
removidas]
  
  
  
  
  
  
  [As partes desta mensagem que não continham texto foram 
removidas]
 
 
 
 
  
 
 
 [As partes desta mensagem que não continham texto foram removidas]





Re: RES: [oracle_br] Converter campo long

2006-05-09 Por tôpico schmittfilho



Daniel,

Ele continua dando erro... Acho que me expressei mal na formulação 
da pergunta...

O campo é longraw (acho que seria essa a denominacao)... Ele grava 
um texto contendo observacoes de modificacao em cadastros do nosso 
sistema...

Quando rodo a consulta ele da o erro ORA-00932

Sera que é possível fazer direto o select sem passar pelo PL-SQL???

Abraços
--- Em oracle_br@yahoogrupos.com.br, Daniel Mello 
[EMAIL PROTECTED] escreveu

 Seria isto?
 
 select to_char(trunc(CAMPO_LONG,4000)) from TABELA...
 
 
 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br 
[mailto:[EMAIL PROTECTED]
 nome de schmittfilho
 Enviada em: segunda-feira, 8 de maio de 2006 14:52
 Para: oracle_br@yahoogrupos.com.br
 Assunto: [oracle_br] Converter campo long
 
 
 Boa tarde amigos,
 
 Tenho uma tabela com um campo de log definido como LONG. Ao tentar
 efetuar uma consulta não consigo converter o tipo para 
char/varchar3
 via um select normal.
 
 Fiz algumas pesquisas e consegui somente via procedimento no PL-
SQL.
 Vocês já tiveram situação parecida? Existe forma de conseguir
 consultar sem que haja necessidade de uma rotina no PL-SQL?
 
 Abraços
 
 
 
 
 
 ---
-
 --
 Atenção! As mensagens deste grupo são de acesso público e de 
inteira
 responsabilidade de seus remetentes.
 Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
 ---
-
 --
__
 
 
 Este Grupo recebe o apoio da SQL Magazine - 
www.devmedia.com.br/sqlmagazine
 __
 O grupo Oracle_br não aceita anexos. Quando oferecer algum 
arquivo, tenha o
 link do mesmo para evitar trafego(pedidos) desnecessário.
 Links do Yahoo! Grupos











--
Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário.





  




  
Yahoo! Grupos, um serviço oferecido por:
  
  
PUBLICIDADE




  
  



  




  
Links do Yahoo! Grupos

Para visitar o site do seu grupo na web, acesse:http://br.groups.yahoo.com/group/oracle_br/
Para sair deste grupo, envie um e-mail para:[EMAIL PROTECTED]
O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.












[oracle_br] Re: Converter campo long

2006-05-09 Por tôpico schmittfilho



Chiappa,

Desculpa pela má formulação e o novo tipo que criei (varchar3 - 
hehehehe)

Eu tenho uma tabela, onde as descricoes de alteracoes nos dados do 
sistema ficam num campo do tipo long... Nessa descricao fica uma 
sequencia numérica e depois o texto do tipo de modificacao...

Minha questao é se existe forma de via um SELECT capturar a 
sequencia numerica com o SUBSTR por exemplo. Quando tento, ele da 
tipos incompativeis...

Abraços

--- Em oracle_br@yahoogrupos.com.br, jlchiappa [EMAIL PROTECTED] 
escreveu

 Bem, varchar3 não existe, suporei varchar2. Da mesma forma, vc 
fala 
 em converter o tipo, o que faz pensar que vc está querendo 
 converter o DATATYPE da coluna na tabela, mas logo em seguida vc 
fala 
 em SELECT, e SELECT não converte coisa alguma : o que vc quer 
 fazer exatamente ?? Se for simplesmente consultar os dados, 
 necessidade NENHUMA de fazer nada, DESDE QUE o texto do LONG seja 
** 
 MENOR ** do que o VARCHAR2 aceita :
 
 [EMAIL PROTECTED]:SQL@desc TAB_LONGS
 Nome Nulo? Tipo
 -  -
 C1 NUMBER
 C2 LONG
 
 
 [EMAIL PROTECTED]:SQLDECLARE
 2 x varchar2(1000);
 3 BEGIN
 4 select c2 into x from tab_longs where c1=2;
 5 dbms_output.put_line(x);
 6 END;
 7 /
 Linha 2 da Tabela
 
 Procedimento PL/SQL concluído com sucesso.
 
 
 Então explique MELHOR o que vc quer fazer exatamente, caso seja 
MESMO 
 converter o DATATYPE da COLUNA da TABELA PL/SQL seria sim o melhor 
 caminho, creio 
 
 []s
 
 Chiappa
 
 --- Em oracle_br@yahoogrupos.com.br, schmittfilho 
[EMAIL PROTECTED] 
 escreveu
 
  Boa tarde amigos,
  
  Tenho uma tabela com um campo de log definido como LONG. Ao 
tentar 
  efetuar uma consulta não consigo converter o tipo para 
 char/varchar3 
  via um select normal. 
  
  Fiz algumas pesquisas e consegui somente via procedimento no PL-
 SQL. 
  Vocês já tiveram situação parecida? Existe forma de conseguir 
  consultar sem que haja necessidade de uma rotina no PL-SQL?
  
  Abraços
 











--
Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário.





  




  
Yahoo! Grupos, um serviço oferecido por:
  
  
PUBLICIDADE




  
  



  




  
Links do Yahoo! Grupos

Para visitar o site do seu grupo na web, acesse:http://br.groups.yahoo.com/group/oracle_br/
Para sair deste grupo, envie um e-mail para:[EMAIL PROTECTED]
O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.












[oracle_br] Tamanho de campo em uma view

2006-04-12 Por tôpico schmittfilho
Boa tarde amigos,

Gostaria de saber se é possível definir o tamanho de um campo numa 
view. Por exemplo, tenho uma tabela com dois campos texto e na minha 
view que outro sistema ira ler, preciso que a juncao deles seja um 
number com tamanho 10.

Faco o select concatenando os campos sem problema e converto com 
to_number, mas na estrutura ele nao aparece number(10), fica apenas 
como number.

Se alguem puder ajudar, fico grato.

Bruno






--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html