Re: [oracle_br] Re: RMAN

2007-06-05 Por tôpico Cyro
Sua versão não é enterprise então vc não pode allocar mais de 1 canal para
deletar.
Tenta deletar utilizando o run e alocando só um canal.

run {
allocate channel 
delete obsolete;
 }

Não testei, mas deve acredito que funcione.

On 6/5/07, Eduardo de Paula <[EMAIL PROTECTED]> wrote:
>
>   A conexão e as faltas de conceito forão sanadas, porém esse erro de
> multiple channels
>
> RMAN> delete obsolete;
>
> RMAN retention policy will be applied to the command
> RMAN retention policy is set to redundancy 15
> allocated channel: ORA_DISK_1
> channel ORA_DISK_1: sid=114 instance=cjf12 devtype=DISK
> released channel: ORA_DISK_1
> RMAN-00571:
> ===
> RMAN-00569: === ERROR MESSAGE STACK FOLLOWS
> ===
> RMAN-00571:
> ===
> RMAN-03002: failure of delete command at 06/05/2007 17:27:36
> RMAN-06181: multiple channels require Enterprise Edition
>
> RMAN> show all;
>
> RMAN configuration parameters are:
> CONFIGURE RETENTION POLICY TO REDUNDANCY 15;
> CONFIGURE BACKUP OPTIMIZATION OFF; # default
> CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';
> CONFIGURE CONTROLFILE AUTOBACKUP ON;
> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE 'SBT_TAPE'
> TO '%F';
> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F';
> # default
> CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
> CONFIGURE DEVICE TYPE SBT_TAPE PARALLELISM 1 BACKUP TYPE TO
> BACKUPSET; # default
> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; #
> default
> CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; #
> default
> CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; #
> default
> CONFIGURE MAXSETSIZE TO UNLIMITED; # default
> CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
> CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
> CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
> CONFIGURE SNAPSHOT CONTROLFILE NAME
> TO '/oracle/products/10.2.0/db_1/dbs/snapcf_cjf11.f'; # default
>
>  
>



-- 
[ ]´s Cyro


[As partes desta mensagem que não continham texto foram removidas]



RES: [oracle_br] SQL retornando string maior

2007-06-05 Por tôpico Fabio Santos
nao vi nenhum erro.
 
 


  _  

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Fernando Silva
Enviada em: terça-feira, 5 de junho de 2007 13:23
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] SQL retornando string maior



Pessoal ,

Preciso da ajuda de vocês pois estou com uma pequena dúvida mas neste
momento Eu não consigo achar esta tal solucao , é o seguinte , tenho um
select com LPAD que funciona em um banco e não funciona no outro, o problema
não é o LPAD , mas o tamanho da string que esta trazendo, pois no banco 
retorna corretamente , já no banco  retorna uma string muito grande e
acaba dando o erro para mim no aplicativo, gostaria de saber se existe que
mude tão bruscamente este resultado em termos de tamanho de string , vejam
abaixo por favor ; 

Obrigado Galera ; 



- executado no AMBIENTE 

SQL> select
substr('',1,5),to_char(123),'TESTE',lpad('teste',10,
'-') from dual;

RESULTADO CORRETO :
SUBST TO_ 'TEST LPAD('TEST
- --- - --
a 123 TESTE -teste



- executado no AMBIENTE YYY

SQL> select
substr('',1,5),to_char(123),'TESTE',lpad('teste',10,
'-') from dual;

RESULTADO ADVERSO : 
SUBSTR('AA TO_CHAR(123) 'TESTE' LPAD('TESTE',10,'-')
 

--
a 123 TESTE -teste

-
Novo Yahoo! Cadê? - Experimente uma nova busca. 

[As partes desta mensagem que não continham texto foram removidas]



 


[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] SQL retornando string maior

2007-06-05 Por tôpico Fernando Silva
Pessoal ,
   
 Preciso da ajuda de vocês pois estou com uma pequena dúvida mas neste 
momento Eu não consigo achar esta tal solucao , é o seguinte , tenho um select 
com LPAD que funciona em um banco e não funciona no outro, o problema não é o 
LPAD , mas o tamanho da string que esta trazendo, pois no banco  retorna 
corretamente , já no banco  retorna uma string muito grande e acaba dando o 
erro para mim no aplicativo, gostaria de saber se existe que mude tão 
bruscamente este resultado em termos de tamanho de string , vejam abaixo por 
favor ; 
   
 Obrigado Galera ; 
   
  
   
  - executado no AMBIENTE 
   
  SQL> select 
substr('',1,5),to_char(123),'TESTE',lpad('teste',10,'-')
 from dual;
   
  RESULTADO CORRETO :
  SUBST TO_ 'TEST LPAD('TEST
  - --- - --
  a 123 TESTE -teste
   
   
   
  - executado no AMBIENTE YYY
   
  SQL> select 
substr('',1,5),to_char(123),'TESTE',lpad('teste',10,'-')
 from dual;
   
  RESULTADO ADVERSO : 
  SUBSTR('AA TO_CHAR(123) 'TESTE' LPAD('TESTE',10,'-')
    
 

  a 123 TESTE -teste

   
-
Novo Yahoo! Cadê? - Experimente uma nova busca. 

[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] SQL retornando string maior

2007-06-05 Por tôpico nandobarretos
Pessoal ,
 
   Preciso da ajuda de vocês pois estou com uma pequena dúvida 
mas neste momento Eu não consigo achar esta tal solucao , é o 
seguinte , tenho um select com LPAD que funciona em um banco e não 
funciona no outro, o problema não é o LPAD , mas o tamanho da string 
que esta trazendo, pois no banco  retorna corretamente , já no 
banco  retorna uma string muito grande e acaba dando o erro para 
mim no aplicativo, gostaria de saber se existe que mude tão 
bruscamente este resultado em termos de tamanho de string , vejam 
abaixo por favor ; 
 
   Obrigado Galera ; 
 

 
- executado no AMBIENTE 
 
SQL> select substr('',1,5),to_char
(123),'TESTE',lpad('teste',10,'-') from dual;
 
RESULTADO CORRETO :
SUBST TO_ 'TEST LPAD('TEST
- --- - --
a 123 TESTE -teste
 
 
 
- executado no AMBIENTE YYY
 
SQL> select substr('',1,5),to_char
(123),'TESTE',lpad('teste',10,'-') from dual;
 
RESULTADO ADVERSO : 
SUBSTR('AA TO_CHAR(123) 'TESTE' LPAD('TESTE',10,'-
')
 -
---  -
---
a 123 TESTE -teste



[oracle_br] Problemas de conexão do Oracle (MTS versos dedicated) - erro ora-12545

2007-06-05 Por tôpico dievalguizelini
Senhores,

possuímos servidores de aplicação que estão em uma rede A e o banco de 
dados em uma rede B. Entre as redes, temos um firewall que faz NAT 
para os servidores de aplicação acessarem o servidor de banco de dados.

Não sabemos exatamente o que foi mudado, mas recentemente começamos a 
encontrar a mensagem:

ORA-12545: Connect failed because target host or object does not exist

Esta falha de conexão tem ocorrido com a utilização do MTS, com o uso 
de "server=dedicated" este problema não ocorre.

Alguém já se deparou com esta situação?

valeu.

Ps: cliente com a versão 8.0.6 e servidor com a versão "Oracle9i 
Enterprise Edition Release 9.2.0.4.0 - 64bit Production"



[oracle_br] Validar periféricos pelo forms

2007-06-05 Por tôpico Marcos Giovani Lagassi
Pessoal, eu preciso validar alguns periféricos pelo forms para que o 
mesmo prossiga por uma determinada lógica, ou seja, eu tenho um forms 
que gera um texto no formato "PCL". Preciso verificar primeiramente se 
a impressora que esta na rede esta ativa, caso não, enviar esse 
arquivo por e-mail para um determinado local para que depois o usuário 
possa imprimi-la.

Forms 6i
Oracee 8i

Obrigado pela ajuda.





[oracle_br] Re: RMAN

2007-06-05 Por tôpico Eduardo de Paula
A conexão e as faltas de conceito forão sanadas, porém esse erro de 
multiple channels






RMAN> delete obsolete;

RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 15
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=114 instance=cjf12 devtype=DISK
released channel: ORA_DISK_1
RMAN-00571: 
===
RMAN-00569: === ERROR MESSAGE STACK FOLLOWS 
===
RMAN-00571: 
===
RMAN-03002: failure of delete command at 06/05/2007 17:27:36
RMAN-06181: multiple channels require Enterprise Edition

RMAN> show all;

RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 15;
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE 'SBT_TAPE' 
TO '%F';
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; 
# default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
CONFIGURE DEVICE TYPE SBT_TAPE PARALLELISM 1 BACKUP TYPE TO 
BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # 
default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # 
default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # 
default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME 
TO '/oracle/products/10.2.0/db_1/dbs/snapcf_cjf11.f'; # default




[oracle_br] Problemas em receber mensagens do grupo

2007-06-05 Por tôpico Carlos Alfredo Martins Menezes
Caros,
Este é apenas um teste, é que, de forma geral, estou tendo problemas em 
receber mensagens do yahoo, favor desconsiderar.
 
[ ]´s
Carlos


[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] problema com cursor

2007-06-05 Por tôpico Denis Artuzi
delete
from REPETIDO a
where a.rowid <> (select min(b.rowid) from REPETIDO b
where a.CAMPO = b.CAMPO)

Em 04/06/07, Vinicius Trintin <[EMAIL PROTECTED]> escreveu:
>
>   pensando no problema que estou tendo com dados "iguais" quero deletar os
> registros que sao duplicados e nao me interessam pra isso fiz a seguinte pl
>
> DECLARE
> CURSOR capaga IS
> SELECT party_id,
> COUNT(party_id) contador
> FROM apps_hz_party_contact_points_v
> GROUP BY party_id
> HAVING COUNT(party_id) > 1;
> BEGIN
> FOR cs IN capaga LOOP
> DELETE FROM apps_hz_party_contact_points_v
> WHERE 3 = cs.contador
> And rownum = 1;
> END LOOP;
> end;
>
> porem nao esta apagando ... alguem sabe me dizer o que seria
>
> __
> Novo Yahoo! Cadê? - Experimente uma nova busca.
> http://yahoo.com.br/oqueeuganhocomisso
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
>


[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] RMAN

2007-06-05 Por tôpico Eduardo de Paula
Senhores,

tenho uma instancia oracle RAC 10g R2 com unidade de fita. Gostaria de
configurar o RMAN em uma instancia separada (Oracle XE) para gravar os
backups naquela primeira maquina. Alguém tem alguma luz de onde eu posso
começar? Já estou lendo o documento que o Chiappa deixou aqui no grupo (
http://www.oracle.com/technology/obe/obe9ir2/obe-ha/rman/rman.htm?_template=/ocom/print),
mas ainda tenho dúvidas sobre o target e como configurar a unidade de fita
(remota).

Obrigado.


Eduardo de Paula


-- 
"Os erros podem ser transformados em acertos quando com eles se aprende. Não
existe a segurança do acerto eterno."


[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Duvida em sql

2007-06-05 Por tôpico Ricardo Francisco
neste caso quando vc utiliza select into e não existe registro, o erro
no_data_found será disparado.

vc pode fazer este select into com exception, colocando o when
no_data_found. Quando não existir o registro e cair no exception, vc faz a
atribuição da variável que está fazendo no seu if.

begin
  select into ...
exception
   when no_data_found then
  --atribuição do if
end;

Espero ter ajudado.
Att.
Ricardo.



Em 05/06/07, rzzanatta <[EMAIL PROTECTED]> escreveu:
>
>   Estou com uma duvida. Quando faço um select e me retorna um valor nulo
> (nao econtrou nada), e estou pegando essa variavel e verificando se é
> nula, ele nao faz os procedimentos sendo nula.
>
> SELECT DATA INTO DATA_ICALEND FROM ICALENDARIOMENSAL
> WHERE CO_SERVICOMANUTENCAO = F_NUMERO AND ROWNUM =1
> ORDER BY DATA desc;
>
> IF DATA_ICALEND is NULL THEN
> DATA_ICALEND:= DATA_BA;
> END if;
>
> 
>


[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Duvida em sql

2007-06-05 Por tôpico Roberto Amorim
A primeira coisa que eu te aconselho é fazer desta tua query uma 
subquery, assim:

select * from (SELECT DATA INTO DATA_ICALEND FROM ICALENDARIOMENSAL WHERE  
CO_SERVICOMANUTENCAO = F_NUMERO ORDER BY DATA desc)q
where q.ROWNUM =1

Depois eu testaria se a query retorna erro, desta forma:

BEGIN
SELECT data
INTO   data_icalend
FROM   (SELECT data
FROM   icalendariomensal
WHERE  co_servicomanutencao = f_numero
ORDER  BY data DESC) q
WHERE  q.rownum = 1;

EXCEPTION
WHEN no_data_found THEN
raise_application_error(-20203, 'Data não encontrada');
WHEN OTHERS THEN
raise_application_error(-20203, 'ERRO AO BUSCAR DATA: ' || SQLERRM);
END;

IF data_icalend IS NULL THEN
data_icalend := data_ba;
END IF;

Um abraço
Roberto



rzzanatta escreveu:
> Estou com uma duvida. Quando faço um select e me retorna um valor nulo
> (nao econtrou nada), e estou pegando essa variavel e verificando se é 
> nula, ele nao faz os procedimentos sendo nula.
>
>  SELECT DATA INTO DATA_ICALEND FROM ICALENDARIOMENSAL
> WHERE  CO_SERVICOMANUTENCAO = F_NUMERO AND ROWNUM =1
> ORDER BY DATA desc;
>  
> IF DATA_ICALEND is NULL THEN
> DATA_ICALEND:= DATA_BA;
> END if;
>
>
>
>
>   
>> Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package » Procedure 
>> » Scripts » Tutoriais acesse: 
>> http://www.oraclebr.com.br/codigo/ListaCodigo.php 
>> 
> --
>   
>> Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>> responsabilidade de seus remetentes.
>> 
> Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
> --
>   
>> O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
>> http://www.oraclebr.com.br/  
>> 
> 
>   
> Links do Yahoo! Grupos
>
>  
>
>
>
>   




[oracle_br] Duvida em sql

2007-06-05 Por tôpico rzzanatta
Estou com uma duvida. Quando faço um select e me retorna um valor nulo
(nao econtrou nada), e estou pegando essa variavel e verificando se é 
nula, ele nao faz os procedimentos sendo nula.

 SELECT DATA INTO DATA_ICALEND FROM ICALENDARIOMENSAL
WHERE  CO_SERVICOMANUTENCAO = F_NUMERO AND ROWNUM =1
ORDER BY DATA desc;
 
IF DATA_ICALEND is NULL THEN
DATA_ICALEND:= DATA_BA;
END if;




[oracle_br] Ajuda Urgente !! INVALID OCI HANDLE

2007-06-05 Por tôpico amorrimm
Fala pessoal, 

Tenho uma aplicação desenvolvida em Delphi que esta acessando meu banco 
Oracle 10. Em um determinado momento, ele exibi o erro: invalid OCI 
Handle ao gerar uma GRRF.

Ao saberia me dizer que erro seria este ?

OBS: Este banco foi migrado de um SQL Sever para Oracle 10 G. Seria que 
poderia ser algo da migração que nao foi bem sucedida ?





Re: [oracle_br] Re: Group by

2007-06-05 Por tôpico Marcio Portes
Fabiano, as vezes parece intransigência ficar pedindo versão do banco, do
sistema operacional, etc... mas não! Na verdade ganha-se tempo quando quem
formula a resposta trabalha diretamente na versão da dúvida. É complicado,
pelo menos pra mim, a questão tempo! Dúvidas que chegam e não tem o mínimo
de condição de reprodução, não dá nem pra olhar. Mas... tá ai sua query em
9i.

ops$marcio:LX92> select * from v$version;

BANNER

Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
PL/SQL Release 9.2.0.8.0 - Production
CORE9.2.0.8.0   Production
TNS for Linux: Version 9.2.0.8.0 - Production
NLSRTL Version 9.2.0.8.0 - Production

5 rows selected.

ops$marcio:LX92> select min(estaca), max(estaca), max(volume)
  2from (
  3  select estaca, volume,
  4   max(
  5  case
  6 when volume <> lag_vol or lag_vol is null
  7   then rownum
  8 else null
  9  end
 10   ) over (order by estaca) bit
 11from (
 12  select estaca, volume,
 13 lag(volume) over ( order by estaca ) lag_vol
 14from t
 15 )
 16 )
 17   group by bit
 18  /

  MIN(ESTACA)   MAX(ESTACA)   MAX(VOLUME)
- - -
 1000  100540
 1006  101050
 1011  101540
 1020  102335

4 rows selected.





On 6/5/07, Fabiano Arndt <[EMAIL PROTECTED]> wrote:
>
>   Bom dia Marcio,
>
> na verdade to usando o 9i, esqueci de avisar. Mas vou tentar decifrar
> a sql que vc me passou e vejo se consigo fazer algo parecido no 9i.
>
> valeu aí,
> abraço.
>
> Fabiano.
>
> Em 05/06/07, Marcio Portes <[EMAIL PROTECTED]>
> escreveu:
>
> >
> > Como voce não menciona versão - essa solução ai abaixo vale somente para
> > 10g.
> >
> > ops$marcio:LX10G> select * from t;
> >
> > ESTACA VOLUME
> > - -
> > 1000 40
> > 1001 40
> > 1002 40
> > 1003 40
> > 1004 40
> > 1005 40
> > 1006 50
> > 1007 50
> > 1008 50
> > 1009 50
> > 1010 50
> > 1011 40
> > 1012 40
> > 1013 40
> > 1014 40
> > 1015 40
> > 1020 35
> > 1021 35
> > 1022 35
> > 1023 35
> >
> > 20 rows selected.
> >
> > ops$marcio:LX10G>
> > ops$marcio:LX10G> select min(estaca), max(estaca), max(volume)
> > 2 from (
> > 3 select estaca, volume,
> > 4 last_value(
> > 5 case
> > 6 when volume <> lag_vol or lag_vol is null
> > 7 then rownum
> > 8 else null
> > 9 end
> > 10 ignore nulls ) over ( order by estaca ) bit
> > 11 from (
> > 12 select estaca, volume,
> > 13 lag(volume) over ( order by estaca ) lag_vol
> > 14 from t
> > 15 )
> > 16 )
> > 17 group by bit
> > 18 /
> >
> > MIN(ESTACA) MAX(ESTACA) MAX(VOLUME)
> > - - -
> > 1000 1005 40
> > 1006 1010 50
> > 1011 1015 40
> > 1020 1023 35
> >
> > 4 rows selected.
> >
> > On 6/4/07, Fabiano Arndt <[EMAIL PROTECTED]
> >
> > wrote:
> > >
> > > olá Chiappa,
> > >
> > > esse e-mail que vc respondeu foi o e-mail que eu respondi a duvida do
> > > Marcio e escrevi errado ai mandei novamente outro e-mail.
> > >
> > > na verdade esse resultado
> > > > 1000 a 1015 40
> > > > 1006 a 1010 50
> > > > 1020 a 1023 35
> > > é o que retorna quando uso o group by da maneira normal,
> > > como vc me sugeriu, o problema é que eu preciso agrupar de
> > > uma forma um pouco diferente, preciso agrupar quando todas
> > > as estacas estiverem em sequencia. se pular uma estaca
> > > já é outro grupo.
> > >
> > > o resultado que eu preciso seria isso
> > >
> > > > 1000 a 1005 40 * aqui o volume é 40
> > > > 1006 a 1010 50
> > > > 1011 a 1015 40 * e aqui o volume tbm é 40
> > > > 1020 a 1023 35
> > >
> > > a pessoa que olhar esses dados deve interpreta-los da
> > > seguinte maneira:
> > >
> > > todas as estacas que estão entre 1000 e 1005 possuem o volume igual a
> 40
> > > todas as estacas que estão entre 1006 e 1010 possuem o volume igual a
> 50
> > > todas as estacas que estão entre 1011 e 1015 possuem o volume igual a
> 40
> > > e assim por diante.
> > >
> > > por isso, se eu agrupar pelo volume, só vou ter como resultado
> > > uma linha onde aparece o volume 40, com o min=1000 e
> > > max=1015, porém nem todos os volumes entre 1000 e 1015 são
> > > igual a 40. e é isso que tá me quebrando a cabeça. não to sabendo
> > > como agrupar isso.
> > >
> > > se alguém tiver uma idéia agradeço,
> > >
> > > valeu,
> > > abraço.
> > >
> > > Fabiano.
> > >
> > > Em 04/06/07, jlchiappa <[EMAIL PROTECTED]
>  > com.br>>
> > > escreveu:
> > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > pmfji, mas pelo que vejo aí ficou simplérrimo, do jeito que vc
> coloca
> > > > vc simplesmente quer agrupar pela coluna VOLUME e dentro de cada
> > > > grupo saber o ponto inicial e final, seria SELECT MIN(ESTACA), MAX
> > > > (ESTACA), VOLUME FROM tabela GROUP BY VOLUME;
> > > >
> > > > se não for isso explica melhor...
> > > >
> > > > []s

Re: [oracle_br] Re: Group by

2007-06-05 Por tôpico Fabiano Arndt
Bom dia Marcio,

na verdade to usando o 9i, esqueci de avisar. Mas vou tentar decifrar
a sql que vc me passou e vejo se consigo fazer algo parecido no 9i.

valeu aí,
abraço.

Fabiano.


Em 05/06/07, Marcio Portes <[EMAIL PROTECTED]> escreveu:
>
>   Como voce não menciona versão - essa solução ai abaixo vale somente para
> 10g.
>
> ops$marcio:LX10G> select * from t;
>
> ESTACA VOLUME
> - -
> 1000 40
> 1001 40
> 1002 40
> 1003 40
> 1004 40
> 1005 40
> 1006 50
> 1007 50
> 1008 50
> 1009 50
> 1010 50
> 1011 40
> 1012 40
> 1013 40
> 1014 40
> 1015 40
> 1020 35
> 1021 35
> 1022 35
> 1023 35
>
> 20 rows selected.
>
> ops$marcio:LX10G>
> ops$marcio:LX10G> select min(estaca), max(estaca), max(volume)
> 2 from (
> 3 select estaca, volume,
> 4 last_value(
> 5 case
> 6 when volume <> lag_vol or lag_vol is null
> 7 then rownum
> 8 else null
> 9 end
> 10 ignore nulls ) over ( order by estaca ) bit
> 11 from (
> 12 select estaca, volume,
> 13 lag(volume) over ( order by estaca ) lag_vol
> 14 from t
> 15 )
> 16 )
> 17 group by bit
> 18 /
>
> MIN(ESTACA) MAX(ESTACA) MAX(VOLUME)
> - - -
> 1000 1005 40
> 1006 1010 50
> 1011 1015 40
> 1020 1023 35
>
> 4 rows selected.
>
> On 6/4/07, Fabiano Arndt <[EMAIL PROTECTED]>
> wrote:
> >
> > olá Chiappa,
> >
> > esse e-mail que vc respondeu foi o e-mail que eu respondi a duvida do
> > Marcio e escrevi errado ai mandei novamente outro e-mail.
> >
> > na verdade esse resultado
> > > 1000 a 1015 40
> > > 1006 a 1010 50
> > > 1020 a 1023 35
> > é o que retorna quando uso o group by da maneira normal,
> > como vc me sugeriu, o problema é que eu preciso agrupar de
> > uma forma um pouco diferente, preciso agrupar quando todas
> > as estacas estiverem em sequencia. se pular uma estaca
> > já é outro grupo.
> >
> > o resultado que eu preciso seria isso
> >
> > > 1000 a 1005 40 * aqui o volume é 40
> > > 1006 a 1010 50
> > > 1011 a 1015 40 * e aqui o volume tbm é 40
> > > 1020 a 1023 35
> >
> > a pessoa que olhar esses dados deve interpreta-los da
> > seguinte maneira:
> >
> > todas as estacas que estão entre 1000 e 1005 possuem o volume igual a 40
> > todas as estacas que estão entre 1006 e 1010 possuem o volume igual a 50
> > todas as estacas que estão entre 1011 e 1015 possuem o volume igual a 40
> > e assim por diante.
> >
> > por isso, se eu agrupar pelo volume, só vou ter como resultado
> > uma linha onde aparece o volume 40, com o min=1000 e
> > max=1015, porém nem todos os volumes entre 1000 e 1015 são
> > igual a 40. e é isso que tá me quebrando a cabeça. não to sabendo
> > como agrupar isso.
> >
> > se alguém tiver uma idéia agradeço,
> >
> > valeu,
> > abraço.
> >
> > Fabiano.
> >
> > Em 04/06/07, jlchiappa <[EMAIL 
> > PROTECTED] com.br>>
> > escreveu:
> >
> > >
> > >
> > >
> > >
> > >
> > >
> > > pmfji, mas pelo que vejo aí ficou simplérrimo, do jeito que vc coloca
> > > vc simplesmente quer agrupar pela coluna VOLUME e dentro de cada
> > > grupo saber o ponto inicial e final, seria SELECT MIN(ESTACA), MAX
> > > (ESTACA), VOLUME FROM tabela GROUP BY VOLUME;
> > >
> > > se não for isso explica melhor...
> > >
> > > []s
> > >
> > > Chiappa
> > >
> > > --- Em oracle_br@yahoogrupos.com.br 
> > >  rupos.com.br>,
> > "Fabiano Arndt"
> > > <[EMAIL PROTECTED]> escreveu
> > > >
> > > > Marcio,
> > > >
> > > > foi erro meu na hora de escrever, esse valor deve sair junto no
> > > resultado,
> > > >
> > > > o resultado correto seria
> > > >
> > > > 1000 a 1015 40
> > > > 1006 a 1010 50
> > > > 1020 a 1023 35
> > > >
> > > > valeu pelo observação.
> > > >
> > > >
> > > > Em 01/06/07, Marcio Portes <[EMAIL PROTECTED]> escreveu:
> > > > >
> > > > > E o que fazemos com
> > > > > --
> > > > > 1000 40
> > > > >
> > > > > Não vi voce mencionar isso na sua explicação...
> > > > >
> > > > > On 6/1/07, Fabiano Arndt <[EMAIL PROTECTED] > > 40gmail.com>>
> > >
> > > > > wrote:
> > > > > >
> > > > > > Olá pessoal,
> > > > > >
> > > > > > tenho uma tabela que tem uma coluna chamada estaca e outra
> > > chamada
> > > > > volume,
> > > > > >
> > > > > > cada estaca tem um volume, as estacas são representadas
> > > sequencialmente.
> > > > > >
> > > > > > normalmente várias estacas consecutivas tem o mesmo volume,
> > > como é
> > > > > > mostrado abaixo:
> > > > > >
> > > > > > estaca volume
> > > > > > 1000 40
> > > > > > 1001 40
> > > > > > 1002 40
> > > > > > 1003 40
> > > > > > 1004 40
> > > > > > 1005 40
> > > > > > 1006 50
> > > > > > 1007 50
> > > > > > 1008 50
> > > > > > 1009 50
> > > > > > 1010 50
> > > > > > 1011 40
> > > > > > 1012 40
> > > > > > 1013 40
> > > > > > 1014 40
> > > > > > 1015 40
> > > > > > 1020 35
> > > > > > 1021 35
> > > > > > 1022 35
> > > > > > 1023 35
> > > > > >
> > > > > > preciso fazer uma sql que me retorne os dados agrupados da
> > > maneira
> > > > > abaixo:
> > > > > >
> > > > > > 1001 a 1005 40
> > > > > > 1006 a 1010 50
> > > > > > 1011 a 1015 40
> > > > > > 1020 a 1023 35
> > > > > >
> > > > > > os dados ac