[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
[oracle_br] Re: Consulta Hierarquica
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
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
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
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
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
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