Re: [oracle_br] duvia ODI
Bom dia Jorge. O ODI foi feito para isso mesmo, integração de dados entre plataformas diferentes. No seu caso vai ser interessante usar o recurso Changed Data Capture para pegar apenas os dados modificados: http://docs.oracle.com/cd/E21764_01/integrate./e12643/data_capture.htm []'s Paulo De: jorge sanfelice jorgesanfel...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 22 de Agosto de 2012 11:05 Assunto: [oracle_br] duvia ODI Bom dia Pessoal, Estou com uma duvida qnt ao uso do ODI. Estou com uma situacao onde estao querendo usa-lo para sincronizacoes de dados entre servidores de plataformas diferentes Ex: Postgresql - Oracle Ou até mesmo entre Postgresql - Postgresql A idéia seria manter sincronizadas algumas colunas de tabelas especificar ou até mesmo uma tabela interira. A Sincronizacao seria unidirecional, ou seja, sempre do Postgresql para o Oracle. Alguem sabe dizer se isso é recomendavel? Ou se até mesmo, tem argumentos para dizer ... nao é feito para isso,... , nao use com essa finalidade, ... vai dar problema Obs: Hoje temos sincronizacoes que costumam rodar a cada 5min. Elas pegam dados de colunas ou tabelas de um server de banco e atualizam em outro banco (indenpendente da plataforma do banco). Essas sincronizacoes sao feitas em sua maioria em C. Agora que temos o ODI, estao querendo mudar tudo... porem nao tenho argumentos tecnicos pra confirmar se o ODI pode substituir essas aplicacoes que fazem isso hoje. Agradeço a ajuda. [As partes desta mensagem que não continham texto foram removidas] -- 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/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ Links do Yahoo! Grupos
Re: [oracle_br] Re: Pesquisa Reports
Muito obrigado pela ajuda. Ótimas as dicas De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 22 de Agosto de 2012 11:11 Assunto: [oracle_br] Re: Pesquisa Reports Ah, esqueci de te passar o link de uma das soluções de pesquisa de fontes (Pl/SQL, mas afaik funciona com SQLs também) no Reports, que é https://www.finditez.com/press/2012_july_22.aspx []s Chiappa --- Em oracle_br@yahoogrupos.com.br, J. Laurindo Chiappa jlchiappa@... escreveu Eu sei que tem alguns que fornecem coisa do tipo (como http://www.aug10.com/ e http://www.kumaran.com/program_scanner.asp), mas normalmente são produtos caros e especializados, e de difícil implementação : se não for uma qtdade absurda de .RDFs, porque vc OU não usa a opção de os salvar em tabelas Oracle (que podem ser depois pesquisadas), OU se for reports 9i ou superior os salva em .HTML , OU (o melhor, talvez) simplesmente não usa a opção de gerar arquivo-texto com a definição dos reports - na versão 6i era algo tipo : RWCON60 source=testfile.rdf dest=testfile.rex STYPE=RDFFILE DTYPE=REXFILE BATCH=YES OVERWRITE=YES e que podia/pode inclusive ser automatizado num script .BAT , e o .REX resultante é um arquivo rich-text, com o texto dos SQLs e PL/SQLs em plain text junto com alguns binários dos objetos Reports, a porção-texto Pode ser pesquisada via editor de texto, grep-like tools, como quiser []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Junior roberjr_sec@ escreveu Pessoal, bom dia Alguém conhece algum software que dê para pesquisar dentro das queries do reports ?? Ex: Localizar o campo numero_nf Desde de já agradeço. [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: duvia ODI
Colega, sim, o ODI é feito para isso (embora não apenas para isso), se vc olhar na FAQ dele no site da Oracle (http://www.oracle.com/technetwork/middleware/data-integrator/odi-11g-faq-168660.html ) vc vai ver que o seu uso pretendido é sim suportado O grande lance aqui, porém, que Só Você pode avaliar, é : compensa o investimento/custo/tempo/esforço para substituir as rotinas que vc já tem hoje Só vc pode dizer que NÃO (porque, digamos, as rotinas de hoje estão altamente estáveis, a manutenção é fácil por causa do conhecimento in-house, etc) ou que SIM, compensa porque a situação é ao contrário Aliás, sempre que se fala em troca de tecnologia (que é o que vc vai fazer) neguinho esquece de computar o CUSTO de treinamento de pessoal e absorção da nova tecnologia, que em alguns casos pode nem ser tão alto mas que EXISTE, Não É Zero, isso não é Outro ponto que só depois do teste você vai poder dizer é o nível de Suporte que ele dá ao banco não-Oracle : claro que ele conecta e lê dados, mas SERÁ que (por exemplo) ele Realmente reconhece 100% dos datatypes do Post que vc usa E dos construtos programados e/ou dependentes de SQl, como views ??? Só você, testando no SEU ambiente post, com as SUAS tabelas/views/etc é que pode julgar isso Vc até pode ir pros Grupos de usuários do post e lançar essa pergunta lá, mas a resposta final só mesmo com o seu teste no seu ambiente []s Chiappa --- Em oracle_br@yahoogrupos.com.br, jorge sanfelice jorgesanfelice@... escreveu Bom dia Pessoal, Estou com uma duvida qnt ao uso do ODI. Estou com uma situacao onde estao querendo usa-lo para sincronizacoes de dados entre servidores de plataformas diferentes Ex: Postgresql - Oracle Ou até mesmo entre Postgresql - Postgresql A idéia seria manter sincronizadas algumas colunas de tabelas especificar ou até mesmo uma tabela interira. A Sincronizacao seria unidirecional, ou seja, sempre do Postgresql para o Oracle. Alguem sabe dizer se isso é recomendavel? Ou se até mesmo, tem argumentos para dizer ... nao é feito para isso,... , nao use com essa finalidade, ... vai dar problema Obs: Hoje temos sincronizacoes que costumam rodar a cada 5min. Elas pegam dados de colunas ou tabelas de um server de banco e atualizam em outro banco (indenpendente da plataforma do banco). Essas sincronizacoes sao feitas em sua maioria em C. Agora que temos o ODI, estao querendo mudar tudo... porem nao tenho argumentos tecnicos pra confirmar se o ODI pode substituir essas aplicacoes que fazem isso hoje. Agradeço a ajuda. [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Re: Memoria BD Oracle
Colega, dificilmente a Oracle se mete a ditar configurações, nem a fornecer how-tos, ela se limita a documentar que Sim, SGAs grandes demandam mais CPU (por causa do latching extra que vai haver, principalmente : vide manual Concepts e Tuning, bem como as notas metalink referentes á latch) mas só vc, analisando o seu ambiente, é que pode dizer se o overhead resultante da SGA maior compensou (por incidência maior de dados em cache , digamos) ou não Inclusive esse potencial overhead via de regra Não é levado em conta pelos Assistentes Oracle (principalmente no OEM), é algo com que vc tem que se precaver. Alguns links aonde os Autores citam essa preocupação com sair aumentando RAM aleatoriamente podem ser http://asktom.oracle.com/pls/apex/f?p=100:11:0P11_QUESTION_ID:3296923986640 , http://asktom.oracle.com/pls/apex/f?p=100:11:0P11_QUESTION_ID:30011178429375 e http://asktom.oracle.com/pls/apex/f?p=100:11:0P11_QUESTION_ID:707585800346136316 Quando alguém te falar de de aumentar SGA, dado o fato que SGA basicamente contém os pools e caches do RDBMS, normalmente o que a pessoa acha é que I/O em memória não custa nada, e/ou é infinitamente mais rápido do que I/O em disco, então mesmo que o mais horroroso dos SQLs faça toneladas de I/Os desnecessários, na cabecinha da pessoa se os I/Os foram em RAM tudo está bem, então ao invés de corrigir o SQl neguinho despeja RAM no problema Isso é a maior das falsidades, alguns papers clássicos como http://raj_oracle90.tripod.com/sitebuildercontent/sitebuilderfiles/whya99percentbuffercacheratioisnotok-carymillsap.pdf ou http://www.quest.com/whitepapers/TuningOracleWithoutCacheHit_new.pdf já desbancaram isso há anos, veja se não é algo nesse sentido que a pessoa tá se referindo []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Raphael Franco phadba@... escreveu Pessoal, Se eu tenho um servidor de 350Gb de memória e vejo que atraves de estatisticas/relatorios que o ideal para SGA e PGA = 40Gb, não faz sentido em colocar 120Gb atoa, certo ?? Vejo que pode até piorar o processamento do servidor, visto que demanda mais recursos(CPU) para gerenciar essa memória. Existe algum documento oficial que fale a respeito ?? att. Raphael. [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: duvia ODI
Galera, Agradeço as dicas, acho q o melhor é tentar usar isso. A ideia inicial é usar postgresql para postgresql (esse é onde temos a maior necessidade). E outro postgresql para um Oracle (apenas uma integracao inicialmente) Se funcionar de postgresql para postgresql, ja sera show. Em 22 de agosto de 2012 13:18, J. Laurindo Chiappa jlchia...@yahoo.com.brescreveu: ** Colega, sim, o ODI é feito para isso (embora não apenas para isso), se vc olhar na FAQ dele no site da Oracle ( http://www.oracle.com/technetwork/middleware/data-integrator/odi-11g-faq-168660.html) vc vai ver que o seu uso pretendido é sim suportado O grande lance aqui, porém, que Só Você pode avaliar, é : compensa o investimento/custo/tempo/esforço para substituir as rotinas que vc já tem hoje Só vc pode dizer que NÃO (porque, digamos, as rotinas de hoje estão altamente estáveis, a manutenção é fácil por causa do conhecimento in-house, etc) ou que SIM, compensa porque a situação é ao contrário Aliás, sempre que se fala em troca de tecnologia (que é o que vc vai fazer) neguinho esquece de computar o CUSTO de treinamento de pessoal e absorção da nova tecnologia, que em alguns casos pode nem ser tão alto mas que EXISTE, Não É Zero, isso não é Outro ponto que só depois do teste você vai poder dizer é o nível de Suporte que ele dá ao banco não-Oracle : claro que ele conecta e lê dados, mas SERÁ que (por exemplo) ele Realmente reconhece 100% dos datatypes do Post que vc usa E dos construtos programados e/ou dependentes de SQl, como views ??? Só você, testando no SEU ambiente post, com as SUAS tabelas/views/etc é que pode julgar isso Vc até pode ir pros Grupos de usuários do post e lançar essa pergunta lá, mas a resposta final só mesmo com o seu teste no seu ambiente []s Chiappa --- Em oracle_br@yahoogrupos.com.br, jorge sanfelice jorgesanfelice@... escreveu Bom dia Pessoal, Estou com uma duvida qnt ao uso do ODI. Estou com uma situacao onde estao querendo usa-lo para sincronizacoes de dados entre servidores de plataformas diferentes Ex: Postgresql - Oracle Ou até mesmo entre Postgresql - Postgresql A idéia seria manter sincronizadas algumas colunas de tabelas especificar ou até mesmo uma tabela interira. A Sincronizacao seria unidirecional, ou seja, sempre do Postgresql para o Oracle. Alguem sabe dizer se isso é recomendavel? Ou se até mesmo, tem argumentos para dizer ... nao é feito para isso,... , nao use com essa finalidade, ... vai dar problema Obs: Hoje temos sincronizacoes que costumam rodar a cada 5min. Elas pegam dados de colunas ou tabelas de um server de banco e atualizam em outro banco (indenpendente da plataforma do banco). Essas sincronizacoes sao feitas em sua maioria em C. Agora que temos o ODI, estao querendo mudar tudo... porem nao tenho argumentos tecnicos pra confirmar se o ODI pode substituir essas aplicacoes que fazem isso hoje. Agradeço a ajuda. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- 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/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ 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: oracle_br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
RES: [oracle_br] Essa é dificirrrr!!!Como fazer consulta com filtros diferentes para o mesmo campo?
Se eu entendi, vê se esse select ajuda: SELECT TPV.NUMERO_DO_PEDIDO FROM TPEDIDO_VENDAS TPV WHERE TPV.NUMERO_DO_PEDIDO = (SELECT TPIV.ID_TPEDIDO_VENDAS FROM TITENS_PEDIDO_VENDA TIPV WHERE TPV.COR_DO_ITEM = VERMELHO) AND TPV.COR_DO_ITEM = AZUL; De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Junior Enviada em: Wednesday, 22 de August de 2012 14:12 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Essa é difici!!!Como fazer consulta com filtros diferentes para o mesmo campo? Um Exemplo: /*TABELA TPEDIDO_VENDAS: */ *ID* *NUMERO_DO_**PEDIDO * 1 1 2 2 3 3 4 4 5 5 /*TABELA TITENS_PEDIDO_VENDA: */ *ID * *ID_TPEDIDO_VENDAS * *ITEM * *COR_DO_ITEM* 1 1 A AZUL 2 1 B VERMELHO 3 1 A VERDE 4 2 A VERMELHO 5 3 A VERDE 6 3 A VERMELHO 7 4 B VERMELHO 8 4 A AZUL 9 4 A VERMELHO 10 5 A AZUL Agora que temos as tabelas, preciso selecionar nas duas tabelas os pedidos que tenham o item com cor azul e com cor vermelho, mas se tiver somente a cor azul ou se tiver somente a cor vermelho, não preciso selecioná-lo. Como ficaria, então, a resposta da minha seleção, baseada nos dados acima: *ID_PED_VDA * *NUMERO_PED_VENDA* *ID_ITEM_PED_VDA * *ITEM * *COR_DO_ITEM* 1 1 1 A AZUL 1 1 2 B VERMELHO 4 4 7 B VERMELHO 4 4 8 A AZUL 4 4 9 A VERMELHO Explicando melhor, preciso selecionar pedidos de vendas que possuem itens com a cor azul e itens com a cor vermelho. Este campo cor é preenchido somente com uma cor, então, serão selecionados somente os pedidos que possuirem itens com a cor azul e também com a cor vermelho. Mas os pedidos que tenham itens com azul e não tenham itens com a cor vermelho, não quero trazer nesta seleção e também não quero trazer nesta seleção os pedidos que tenham a cor vermelho mas não tenham a cor azul, resumindo, terão que ter registros com a cor azul e também registros com a cor vermelha no mesmo pedido. Obrigado a todos! Luiz Junior Depto-ti Jowanel Oracle 10G [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Essa é dificirrrr!!!Como fazer consulta com filtros diferentes para o mesmo campo?
Marcio, a cor do item está na tabela de itens (filha) e não tabela de pedidos (pai). Junior, não é nada dificil fazer essa query. Sabe fazer subselect? Pena que não tenho nenhuma base disponível aqui pra simular o teu caso e montar a query pra vc... mas seria mais ou menos isso: select * from TPEDIDO_VENDAS where ID IN (select ID_TPEDIDO_VENDAS from TITENS_PEDIDO_VENDA where COR_DO_ITEM = 'AZUL') and ID IN (select ID_TPEDIDO_VENDAS from TITENS_PEDIDO_VENDA where COR_DO_ITEM = 'VERMELHO'); Teste aí. 2012/8/22 Márcio - Grupos Oracle marcio_...@yahoo.com.br ** Se eu entendi, vê se esse select ajuda: SELECT TPV.NUMERO_DO_PEDIDO FROM TPEDIDO_VENDAS TPV WHERE TPV.NUMERO_DO_PEDIDO = (SELECT TPIV.ID_TPEDIDO_VENDAS FROM TITENS_PEDIDO_VENDA TIPV WHERE TPV.COR_DO_ITEM = VERMELHO) AND TPV.COR_DO_ITEM = AZUL; De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Junior Enviada em: Wednesday, 22 de August de 2012 14:12 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Essa é difici!!!Como fazer consulta com filtros diferentes para o mesmo campo? Um Exemplo: /*TABELA TPEDIDO_VENDAS: */ *ID* *NUMERO_DO_**PEDIDO * 1 1 2 2 3 3 4 4 5 5 /*TABELA TITENS_PEDIDO_VENDA: */ *ID * *ID_TPEDIDO_VENDAS * *ITEM * *COR_DO_ITEM* 1 1 A AZUL 2 1 B VERMELHO 3 1 A VERDE 4 2 A VERMELHO 5 3 A VERDE 6 3 A VERMELHO 7 4 B VERMELHO 8 4 A AZUL 9 4 A VERMELHO 10 5 A AZUL Agora que temos as tabelas, preciso selecionar nas duas tabelas os pedidos que tenham o item com cor azul e com cor vermelho, mas se tiver somente a cor azul ou se tiver somente a cor vermelho, não preciso selecioná-lo. Como ficaria, então, a resposta da minha seleção, baseada nos dados acima: *ID_PED_VDA * *NUMERO_PED_VENDA* *ID_ITEM_PED_VDA * *ITEM * *COR_DO_ITEM* 1 1 1 A AZUL 1 1 2 B VERMELHO 4 4 7 B VERMELHO 4 4 8 A AZUL 4 4 9 A VERMELHO Explicando melhor, preciso selecionar pedidos de vendas que possuem itens com a cor azul e itens com a cor vermelho. Este campo cor é preenchido somente com uma cor, então, serão selecionados somente os pedidos que possuirem itens com a cor azul e também com a cor vermelho. Mas os pedidos que tenham itens com azul e não tenham itens com a cor vermelho, não quero trazer nesta seleção e também não quero trazer nesta seleção os pedidos que tenham a cor vermelho mas não tenham a cor azul, resumindo, terão que ter registros com a cor azul e também registros com a cor vermelha no mesmo pedido. Obrigado a todos! Luiz Junior Depto-ti Jowanel Oracle 10G [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- Att, [As partes desta mensagem que não continham texto foram removidas] -- 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/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ 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: oracle_br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
RES: [oracle_br] Essa é dificirrrr!!!Como fazer consulta com filtros diferentes para o mesmo campo?
Verdade, se precisar Júnior, inverta a tabela interna com a externa. -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Milton Bastos Henriquis Jr. Enviada em: Wednesday, 22 de August de 2012 14:42 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Essa é difici!!!Como fazer consulta com filtros diferentes para o mesmo campo? Marcio, a cor do item está na tabela de itens (filha) e não tabela de pedidos (pai). Junior, não é nada dificil fazer essa query. Sabe fazer subselect? Pena que não tenho nenhuma base disponível aqui pra simular o teu caso e montar a query pra vc... mas seria mais ou menos isso: select * from TPEDIDO_VENDAS where ID IN (select ID_TPEDIDO_VENDAS from TITENS_PEDIDO_VENDA where COR_DO_ITEM = 'AZUL') and ID IN (select ID_TPEDIDO_VENDAS from TITENS_PEDIDO_VENDA where COR_DO_ITEM = 'VERMELHO'); Teste aí. 2012/8/22 Márcio - Grupos Oracle marcio_...@yahoo.com.br ** Se eu entendi, vê se esse select ajuda: SELECT TPV.NUMERO_DO_PEDIDO FROM TPEDIDO_VENDAS TPV WHERE TPV.NUMERO_DO_PEDIDO = (SELECT TPIV.ID_TPEDIDO_VENDAS FROM TITENS_PEDIDO_VENDA TIPV WHERE TPV.COR_DO_ITEM = VERMELHO) AND TPV.COR_DO_ITEM = AZUL; De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Junior Enviada em: Wednesday, 22 de August de 2012 14:12 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Essa é difici!!!Como fazer consulta com filtros diferentes para o mesmo campo? Um Exemplo: /*TABELA TPEDIDO_VENDAS: */ *ID* *NUMERO_DO_**PEDIDO * 1 1 2 2 3 3 4 4 5 5 /*TABELA TITENS_PEDIDO_VENDA: */ *ID * *ID_TPEDIDO_VENDAS * *ITEM * *COR_DO_ITEM* 1 1 A AZUL 2 1 B VERMELHO 3 1 A VERDE 4 2 A VERMELHO 5 3 A VERDE 6 3 A VERMELHO 7 4 B VERMELHO 8 4 A AZUL 9 4 A VERMELHO 10 5 A AZUL Agora que temos as tabelas, preciso selecionar nas duas tabelas os pedidos que tenham o item com cor azul e com cor vermelho, mas se tiver somente a cor azul ou se tiver somente a cor vermelho, não preciso selecioná-lo. Como ficaria, então, a resposta da minha seleção, baseada nos dados acima: *ID_PED_VDA * *NUMERO_PED_VENDA* *ID_ITEM_PED_VDA * *ITEM * *COR_DO_ITEM* 1 1 1 A AZUL 1 1 2 B VERMELHO 4 4 7 B VERMELHO 4 4 8 A AZUL 4 4 9 A VERMELHO Explicando melhor, preciso selecionar pedidos de vendas que possuem itens com a cor azul e itens com a cor vermelho. Este campo cor é preenchido somente com uma cor, então, serão selecionados somente os pedidos que possuirem itens com a cor azul e também com a cor vermelho. Mas os pedidos que tenham itens com azul e não tenham itens com a cor vermelho, não quero trazer nesta seleção e também não quero trazer nesta seleção os pedidos que tenham a cor vermelho mas não tenham a cor azul, resumindo, terão que ter registros com a cor azul e também registros com a cor vermelha no mesmo pedido. Obrigado a todos! Luiz Junior Depto-ti Jowanel Oracle 10G [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- Att, [As partes desta mensagem que não continham texto foram removidas] -- 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/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ Links do Yahoo! Grupos
Re: [oracle_br] Essa é dificirrrr!!!Como fazer consulta com filtros diferentes para o mesmo campo?
select '** pedido **' ,p.*, ,'** linhas ***' ,i.* from TPEDIDO_VENDAS P ,TITENS_PEDIDO_VENDA I where p.ID = i.ID_TPEDIDO_VENDAS and i.COR_DO_ITEM in ('AZUL','VERMELHO') Em 22 de agosto de 2012 14:44, Márcio - Grupos Oracle marcio_...@yahoo.com.br escreveu: ** Verdade, se precisar Júnior, inverta a tabela interna com a externa. -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Milton Bastos Henriquis Jr. Enviada em: Wednesday, 22 de August de 2012 14:42 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Essa é difici!!!Como fazer consulta com filtros diferentes para o mesmo campo? Marcio, a cor do item está na tabela de itens (filha) e não tabela de pedidos (pai). Junior, não é nada dificil fazer essa query. Sabe fazer subselect? Pena que não tenho nenhuma base disponível aqui pra simular o teu caso e montar a query pra vc... mas seria mais ou menos isso: select * from TPEDIDO_VENDAS where ID IN (select ID_TPEDIDO_VENDAS from TITENS_PEDIDO_VENDA where COR_DO_ITEM = 'AZUL') and ID IN (select ID_TPEDIDO_VENDAS from TITENS_PEDIDO_VENDA where COR_DO_ITEM = 'VERMELHO'); Teste aí. 2012/8/22 Márcio - Grupos Oracle marcio_...@yahoo.com.br ** Se eu entendi, vê se esse select ajuda: SELECT TPV.NUMERO_DO_PEDIDO FROM TPEDIDO_VENDAS TPV WHERE TPV.NUMERO_DO_PEDIDO = (SELECT TPIV.ID_TPEDIDO_VENDAS FROM TITENS_PEDIDO_VENDA TIPV WHERE TPV.COR_DO_ITEM = VERMELHO) AND TPV.COR_DO_ITEM = AZUL; De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Junior Enviada em: Wednesday, 22 de August de 2012 14:12 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Essa é difici!!!Como fazer consulta com filtros diferentes para o mesmo campo? Um Exemplo: /*TABELA TPEDIDO_VENDAS: */ *ID* *NUMERO_DO_**PEDIDO * 1 1 2 2 3 3 4 4 5 5 /*TABELA TITENS_PEDIDO_VENDA: */ *ID * *ID_TPEDIDO_VENDAS * *ITEM * *COR_DO_ITEM* 1 1 A AZUL 2 1 B VERMELHO 3 1 A VERDE 4 2 A VERMELHO 5 3 A VERDE 6 3 A VERMELHO 7 4 B VERMELHO 8 4 A AZUL 9 4 A VERMELHO 10 5 A AZUL Agora que temos as tabelas, preciso selecionar nas duas tabelas os pedidos que tenham o item com cor azul e com cor vermelho, mas se tiver somente a cor azul ou se tiver somente a cor vermelho, não preciso selecioná-lo. Como ficaria, então, a resposta da minha seleção, baseada nos dados acima: *ID_PED_VDA * *NUMERO_PED_VENDA* *ID_ITEM_PED_VDA * *ITEM * *COR_DO_ITEM* 1 1 1 A AZUL 1 1 2 B VERMELHO 4 4 7 B VERMELHO 4 4 8 A AZUL 4 4 9 A VERMELHO Explicando melhor, preciso selecionar pedidos de vendas que possuem itens com a cor azul e itens com a cor vermelho. Este campo cor é preenchido somente com uma cor, então, serão selecionados somente os pedidos que possuirem itens com a cor azul e também com a cor vermelho. Mas os pedidos que tenham itens com azul e não tenham itens com a cor vermelho, não quero trazer nesta seleção e também não quero trazer nesta seleção os pedidos que tenham a cor vermelho mas não tenham a cor azul, resumindo, terão que ter registros com a cor azul e também registros com a cor vermelha no mesmo pedido. Obrigado a todos! Luiz Junior Depto-ti Jowanel Oracle 10G [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- Att, [As partes desta mensagem que não continham texto foram removidas] -- -- 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/ -- -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ -- Links do Yahoo! Grupos [As partes desta mensagem que não continham texto foram removidas] -- 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/
[oracle_br] Re: Essa é dificirrrr!!!Como fazer consulta com filtros diferentes para o mesmo campo?
Junior, Com certeza vão ter outras soluções, visto que, do processador lógico humano tem muitos modelos ... Eu pensei em uma solução usando uma FUNCTION que receba o código do pedido e pesquise no ITEM_PEDIDO, setando um flag para quando houver VERMELHO e AZUL no mesmo pedido. Desta forma, retornando 1 para existe a condição neste pedido e vc testar na query: select atributos_diversos from PEDIDO P, ITEM_PEDIDO I where p.cod_pedido = i.cod_pedido and fnc_testa_condicao(p.cod_pedido) = 1 and (p.data_ped between to_date('01/08/2012','dd/mm/') and to_date('01/08/2012','dd/mm/') + .9); FNC_TESTA_CONDICAO (p_cod_pedido) return number is wflag number := 0; wazul number := 0; wvermelho number := 0; begin for r2 in (select cor_item from item_pedido where cod_pedido = p_cod_pedido) loop if r2.cor_item = 'VERMELHO' then wvermelho = wvermelho + 1; end if; if r2.cor_item = 'AZUL' then wazul = wazul + 1; end if; end loop; if wvermelho 0 and wazul 0 then wflag := 1; end if; return wflag; end; Pode haver algum erro de compilação, pois escrevi direto aqui. Ederson Elias DBA Oracle http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 --- Em oracle_br@yahoogrupos.com.br, Junior luizcorreiajr@... escreveu Um Exemplo: /*TABELA TPEDIDO_VENDAS: */ *ID* *NUMERO_DO_**PEDIDO * 1 1 2 2 3 3 4 4 5 5 /*TABELA TITENS_PEDIDO_VENDA: */ *ID * *ID_TPEDIDO_VENDAS * *ITEM * *COR_DO_ITEM* 1 1 A AZUL 2 1 B VERMELHO 3 1 A VERDE 4 2 A VERMELHO 5 3 A VERDE 6 3 A VERMELHO 7 4 B VERMELHO 8 4 A AZUL 9 4 A VERMELHO 10 5 A AZUL Agora que temos as tabelas, preciso selecionar nas duas tabelas os pedidos que tenham o item com cor azul e com cor vermelho, mas se tiver somente a cor azul ou se tiver somente a cor vermelho, não preciso selecioná-lo. Como ficaria, então, a resposta da minha seleção, baseada nos dados acima: *ID_PED_VDA * *NUMERO_PED_VENDA* *ID_ITEM_PED_VDA * *ITEM * *COR_DO_ITEM* 1 1 1 A AZUL 1 1 2 B VERMELHO 4 4 7 B VERMELHO 4 4 8 A AZUL 4 4 9 A VERMELHO Explicando melhor, preciso selecionar pedidos de vendas que possuem itens com a cor azul e itens com a cor vermelho. Este campo cor é preenchido somente com uma cor, então, serão selecionados somente os pedidos que possuirem itens com a cor azul e também com a cor vermelho. Mas os pedidos que tenham itens com azul e não tenham itens com a cor vermelho, não quero trazer nesta seleção e também não quero trazer nesta seleção os pedidos que tenham a cor vermelho mas não tenham a cor azul, resumindo, terão que ter registros com a cor azul e também registros com a cor vermelha no mesmo pedido. Obrigado a todos! Luiz Junior Depto-ti Jowanel Oracle 10G
Re: [oracle_br] Essa é dificirrrr!!!Como fazer consulta com filtros diferentes para o mesmo campo?
Também não funciona, Mucio. Dessa maneira aí vai retornar todos que tenham 'AZUL' ***OU*** 'VERMELHO'. Ele só quer os que tenham OS DOIS, ou seja, azul ***E*** vermelho. 2012/8/22 Mucio Oliveira omu...@gmail.com select '** pedido **' ,p.*, ,'** linhas ***' ,i.* from TPEDIDO_VENDAS P ,TITENS_PEDIDO_VENDA I where p.ID = i.ID_TPEDIDO_VENDAS and i.COR_DO_ITEM in ('AZUL','VERMELHO') Em 22 de agosto de 2012 14:44, Márcio - Grupos Oracle marcio_...@yahoo.com.br escreveu: ** Verdade, se precisar Júnior, inverta a tabela interna com a externa. -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Milton Bastos Henriquis Jr. Enviada em: Wednesday, 22 de August de 2012 14:42 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Essa é difici!!!Como fazer consulta com filtros diferentes para o mesmo campo? Marcio, a cor do item está na tabela de itens (filha) e não tabela de pedidos (pai). Junior, não é nada dificil fazer essa query. Sabe fazer subselect? Pena que não tenho nenhuma base disponível aqui pra simular o teu caso e montar a query pra vc... mas seria mais ou menos isso: select * from TPEDIDO_VENDAS where ID IN (select ID_TPEDIDO_VENDAS from TITENS_PEDIDO_VENDA where COR_DO_ITEM = 'AZUL') and ID IN (select ID_TPEDIDO_VENDAS from TITENS_PEDIDO_VENDA where COR_DO_ITEM = 'VERMELHO'); Teste aí. 2012/8/22 Márcio - Grupos Oracle marcio_...@yahoo.com.br ** Se eu entendi, vê se esse select ajuda: SELECT TPV.NUMERO_DO_PEDIDO FROM TPEDIDO_VENDAS TPV WHERE TPV.NUMERO_DO_PEDIDO = (SELECT TPIV.ID_TPEDIDO_VENDAS FROM TITENS_PEDIDO_VENDA TIPV WHERE TPV.COR_DO_ITEM = VERMELHO) AND TPV.COR_DO_ITEM = AZUL; De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Junior Enviada em: Wednesday, 22 de August de 2012 14:12 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Essa é difici!!!Como fazer consulta com filtros diferentes para o mesmo campo? Um Exemplo: /*TABELA TPEDIDO_VENDAS: */ *ID* *NUMERO_DO_**PEDIDO * 1 1 2 2 3 3 4 4 5 5 /*TABELA TITENS_PEDIDO_VENDA: */ *ID * *ID_TPEDIDO_VENDAS * *ITEM * *COR_DO_ITEM* 1 1 A AZUL 2 1 B VERMELHO 3 1 A VERDE 4 2 A VERMELHO 5 3 A VERDE 6 3 A VERMELHO 7 4 B VERMELHO 8 4 A AZUL 9 4 A VERMELHO 10 5 A AZUL Agora que temos as tabelas, preciso selecionar nas duas tabelas os pedidos que tenham o item com cor azul e com cor vermelho, mas se tiver somente a cor azul ou se tiver somente a cor vermelho, não preciso selecioná-lo. Como ficaria, então, a resposta da minha seleção, baseada nos dados acima: *ID_PED_VDA * *NUMERO_PED_VENDA* *ID_ITEM_PED_VDA * *ITEM * *COR_DO_ITEM* 1 1 1 A AZUL 1 1 2 B VERMELHO 4 4 7 B VERMELHO 4 4 8 A AZUL 4 4 9 A VERMELHO Explicando melhor, preciso selecionar pedidos de vendas que possuem itens com a cor azul e itens com a cor vermelho. Este campo cor é preenchido somente com uma cor, então, serão selecionados somente os pedidos que possuirem itens com a cor azul e também com a cor vermelho. Mas os pedidos que tenham itens com azul e não tenham itens com a cor vermelho, não quero trazer nesta seleção e também não quero trazer nesta seleção os pedidos que tenham a cor vermelho mas não tenham a cor azul, resumindo, terão que ter registros com a cor azul e também registros com a cor vermelha no mesmo pedido. Obrigado a todos! Luiz Junior Depto-ti Jowanel Oracle 10G [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- Att, [As partes desta mensagem que não continham texto foram removidas] -- -- 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/ -- -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ -- Links do Yahoo! Grupos [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Essa é dificirrrr!!!Como fazer consulta com filtros diferentes para o mesmo campo?
usa INTERSECT 2012/8/22 Milton Bastos Henriquis Jr. miltonbas...@gmail.com Também não funciona, Mucio. Dessa maneira aí vai retornar todos que tenham 'AZUL' ***OU*** 'VERMELHO'. Ele só quer os que tenham OS DOIS, ou seja, azul ***E*** vermelho. 2012/8/22 Mucio Oliveira omu...@gmail.com select '** pedido **' ,p.*, ,'** linhas ***' ,i.* from TPEDIDO_VENDAS P ,TITENS_PEDIDO_VENDA I where p.ID = i.ID_TPEDIDO_VENDAS and i.COR_DO_ITEM in ('AZUL','VERMELHO') Em 22 de agosto de 2012 14:44, Márcio - Grupos Oracle marcio_...@yahoo.com.br escreveu: ** Verdade, se precisar Júnior, inverta a tabela interna com a externa. -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Milton Bastos Henriquis Jr. Enviada em: Wednesday, 22 de August de 2012 14:42 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Essa é difici!!!Como fazer consulta com filtros diferentes para o mesmo campo? Marcio, a cor do item está na tabela de itens (filha) e não tabela de pedidos (pai). Junior, não é nada dificil fazer essa query. Sabe fazer subselect? Pena que não tenho nenhuma base disponível aqui pra simular o teu caso e montar a query pra vc... mas seria mais ou menos isso: select * from TPEDIDO_VENDAS where ID IN (select ID_TPEDIDO_VENDAS from TITENS_PEDIDO_VENDA where COR_DO_ITEM = 'AZUL') and ID IN (select ID_TPEDIDO_VENDAS from TITENS_PEDIDO_VENDA where COR_DO_ITEM = 'VERMELHO'); Teste aí. 2012/8/22 Márcio - Grupos Oracle marcio_...@yahoo.com.br ** Se eu entendi, vê se esse select ajuda: SELECT TPV.NUMERO_DO_PEDIDO FROM TPEDIDO_VENDAS TPV WHERE TPV.NUMERO_DO_PEDIDO = (SELECT TPIV.ID_TPEDIDO_VENDAS FROM TITENS_PEDIDO_VENDA TIPV WHERE TPV.COR_DO_ITEM = VERMELHO) AND TPV.COR_DO_ITEM = AZUL; De: oracle_br@yahoogrupos.com.br [mailto: oracle_br@yahoogrupos.com.br] Em nome de Junior Enviada em: Wednesday, 22 de August de 2012 14:12 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Essa é difici!!!Como fazer consulta com filtros diferentes para o mesmo campo? Um Exemplo: /*TABELA TPEDIDO_VENDAS: */ *ID* *NUMERO_DO_**PEDIDO * 1 1 2 2 3 3 4 4 5 5 /*TABELA TITENS_PEDIDO_VENDA: */ *ID * *ID_TPEDIDO_VENDAS * *ITEM * *COR_DO_ITEM* 1 1 A AZUL 2 1 B VERMELHO 3 1 A VERDE 4 2 A VERMELHO 5 3 A VERDE 6 3 A VERMELHO 7 4 B VERMELHO 8 4 A AZUL 9 4 A VERMELHO 10 5 A AZUL Agora que temos as tabelas, preciso selecionar nas duas tabelas os pedidos que tenham o item com cor azul e com cor vermelho, mas se tiver somente a cor azul ou se tiver somente a cor vermelho, não preciso selecioná-lo. Como ficaria, então, a resposta da minha seleção, baseada nos dados acima: *ID_PED_VDA * *NUMERO_PED_VENDA* *ID_ITEM_PED_VDA * *ITEM * *COR_DO_ITEM* 1 1 1 A AZUL 1 1 2 B VERMELHO 4 4 7 B VERMELHO 4 4 8 A AZUL 4 4 9 A VERMELHO Explicando melhor, preciso selecionar pedidos de vendas que possuem itens com a cor azul e itens com a cor vermelho. Este campo cor é preenchido somente com uma cor, então, serão selecionados somente os pedidos que possuirem itens com a cor azul e também com a cor vermelho. Mas os pedidos que tenham itens com azul e não tenham itens com a cor vermelho, não quero trazer nesta seleção e também não quero trazer nesta seleção os pedidos que tenham a cor vermelho mas não tenham a cor azul, resumindo, terão que ter registros com a cor azul e também registros com a cor vermelha no mesmo pedido. Obrigado a todos! Luiz Junior Depto-ti Jowanel Oracle 10G [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- Att, [As partes desta mensagem que não continham texto foram removidas] -- -- 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/ -- -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure »
Re: [oracle_br] Essa é dificirrrr!!!Como fazer consulta com filtros diferentes para o mesmo campo?
select '** pedido **' ,p.*, ,'** linhas azul ***' ,i_a.* ,'** linhas vermelho ***' ,i_v.* from TPEDIDO_VENDAS P ,( select id from TITENS_PEDIDO_VENDA where COR_DO_ITEM in ('AZUL') ) i_a ,( select id from TITENS_PEDIDO_VENDA where COR_DO_ITEM in ('VERMELHO') ) i_v where p.id = i_a.id and p_id = i_v.id Em 22 de agosto de 2012 15:11, Nino ninoba...@gmail.com escreveu: usa INTERSECT 2012/8/22 Milton Bastos Henriquis Jr. miltonbas...@gmail.com Também não funciona, Mucio. Dessa maneira aí vai retornar todos que tenham 'AZUL' ***OU*** 'VERMELHO'. Ele só quer os que tenham OS DOIS, ou seja, azul ***E*** vermelho. 2012/8/22 Mucio Oliveira omu...@gmail.com select '** pedido **' ,p.*, ,'** linhas ***' ,i.* from TPEDIDO_VENDAS P ,TITENS_PEDIDO_VENDA I where p.ID = i.ID_TPEDIDO_VENDAS and i.COR_DO_ITEM in ('AZUL','VERMELHO') Em 22 de agosto de 2012 14:44, Márcio - Grupos Oracle marcio_...@yahoo.com.br escreveu: ** Verdade, se precisar Júnior, inverta a tabela interna com a externa. -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto: oracle_br@yahoogrupos.com.br] Em nome de Milton Bastos Henriquis Jr. Enviada em: Wednesday, 22 de August de 2012 14:42 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Essa é difici!!!Como fazer consulta com filtros diferentes para o mesmo campo? Marcio, a cor do item está na tabela de itens (filha) e não tabela de pedidos (pai). Junior, não é nada dificil fazer essa query. Sabe fazer subselect? Pena que não tenho nenhuma base disponível aqui pra simular o teu caso e montar a query pra vc... mas seria mais ou menos isso: select * from TPEDIDO_VENDAS where ID IN (select ID_TPEDIDO_VENDAS from TITENS_PEDIDO_VENDA where COR_DO_ITEM = 'AZUL') and ID IN (select ID_TPEDIDO_VENDAS from TITENS_PEDIDO_VENDA where COR_DO_ITEM = 'VERMELHO'); Teste aí. 2012/8/22 Márcio - Grupos Oracle marcio_...@yahoo.com.br ** Se eu entendi, vê se esse select ajuda: SELECT TPV.NUMERO_DO_PEDIDO FROM TPEDIDO_VENDAS TPV WHERE TPV.NUMERO_DO_PEDIDO = (SELECT TPIV.ID_TPEDIDO_VENDAS FROM TITENS_PEDIDO_VENDA TIPV WHERE TPV.COR_DO_ITEM = VERMELHO) AND TPV.COR_DO_ITEM = AZUL; De: oracle_br@yahoogrupos.com.br [mailto: oracle_br@yahoogrupos.com.br] Em nome de Junior Enviada em: Wednesday, 22 de August de 2012 14:12 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Essa é difici!!!Como fazer consulta com filtros diferentes para o mesmo campo? Um Exemplo: /*TABELA TPEDIDO_VENDAS: */ *ID* *NUMERO_DO_**PEDIDO * 1 1 2 2 3 3 4 4 5 5 /*TABELA TITENS_PEDIDO_VENDA: */ *ID * *ID_TPEDIDO_VENDAS * *ITEM * *COR_DO_ITEM* 1 1 A AZUL 2 1 B VERMELHO 3 1 A VERDE 4 2 A VERMELHO 5 3 A VERDE 6 3 A VERMELHO 7 4 B VERMELHO 8 4 A AZUL 9 4 A VERMELHO 10 5 A AZUL Agora que temos as tabelas, preciso selecionar nas duas tabelas os pedidos que tenham o item com cor azul e com cor vermelho, mas se tiver somente a cor azul ou se tiver somente a cor vermelho, não preciso selecioná-lo. Como ficaria, então, a resposta da minha seleção, baseada nos dados acima: *ID_PED_VDA * *NUMERO_PED_VENDA* *ID_ITEM_PED_VDA * *ITEM * *COR_DO_ITEM* 1 1 1 A AZUL 1 1 2 B VERMELHO 4 4 7 B VERMELHO 4 4 8 A AZUL 4 4 9 A VERMELHO Explicando melhor, preciso selecionar pedidos de vendas que possuem itens com a cor azul e itens com a cor vermelho. Este campo cor é preenchido somente com uma cor, então, serão selecionados somente os pedidos que possuirem itens com a cor azul e também com a cor vermelho. Mas os pedidos que tenham itens com azul e não tenham itens com a cor vermelho, não quero trazer nesta seleção e também não quero trazer nesta seleção os pedidos que tenham a cor vermelho mas não tenham a cor azul, resumindo, terão que ter registros com a cor azul e também registros com a cor vermelha no mesmo pedido. Obrigado a todos! Luiz Junior Depto-ti Jowanel Oracle 10G [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram
Re: [oracle_br] Essa é dificirrrr!!!Como fazer consulta com filtros diferentes para o mesmo campo?
Mucio, sinto muito por ser tão chato, mas vc está errado de novo... rs Na tabela TITENS_PEDIDO_VENDA vc não deve pegar o id, e sim o ID_TPEDIDO_VENDAS. Senão não vai funcionar o JOIN. 2012/8/22 Mucio Oliveira omu...@gmail.com select '** pedido **' ,p.*, ,'** linhas azul ***' ,i_a.* ,'** linhas vermelho ***' ,i_v.* from TPEDIDO_VENDAS P ,( select id from TITENS_PEDIDO_VENDA where COR_DO_ITEM in ('AZUL') ) i_a ,( select id from TITENS_PEDIDO_VENDA where COR_DO_ITEM in ('VERMELHO') ) i_v where p.id = i_a.id and p_id = i_v.id Em 22 de agosto de 2012 15:11, Nino ninoba...@gmail.com escreveu: usa INTERSECT 2012/8/22 Milton Bastos Henriquis Jr. miltonbas...@gmail.com Também não funciona, Mucio. Dessa maneira aí vai retornar todos que tenham 'AZUL' ***OU*** 'VERMELHO'. Ele só quer os que tenham OS DOIS, ou seja, azul ***E*** vermelho. 2012/8/22 Mucio Oliveira omu...@gmail.com select '** pedido **' ,p.*, ,'** linhas ***' ,i.* from TPEDIDO_VENDAS P ,TITENS_PEDIDO_VENDA I where p.ID = i.ID_TPEDIDO_VENDAS and i.COR_DO_ITEM in ('AZUL','VERMELHO') Em 22 de agosto de 2012 14:44, Márcio - Grupos Oracle marcio_...@yahoo.com.br escreveu: ** Verdade, se precisar Júnior, inverta a tabela interna com a externa. -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto: oracle_br@yahoogrupos.com.br] Em nome de Milton Bastos Henriquis Jr. Enviada em: Wednesday, 22 de August de 2012 14:42 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Essa é difici!!!Como fazer consulta com filtros diferentes para o mesmo campo? Marcio, a cor do item está na tabela de itens (filha) e não tabela de pedidos (pai). Junior, não é nada dificil fazer essa query. Sabe fazer subselect? Pena que não tenho nenhuma base disponível aqui pra simular o teu caso e montar a query pra vc... mas seria mais ou menos isso: select * from TPEDIDO_VENDAS where ID IN (select ID_TPEDIDO_VENDAS from TITENS_PEDIDO_VENDA where COR_DO_ITEM = 'AZUL') and ID IN (select ID_TPEDIDO_VENDAS from TITENS_PEDIDO_VENDA where COR_DO_ITEM = 'VERMELHO'); Teste aí. 2012/8/22 Márcio - Grupos Oracle marcio_...@yahoo.com.br ** Se eu entendi, vê se esse select ajuda: SELECT TPV.NUMERO_DO_PEDIDO FROM TPEDIDO_VENDAS TPV WHERE TPV.NUMERO_DO_PEDIDO = (SELECT TPIV.ID_TPEDIDO_VENDAS FROM TITENS_PEDIDO_VENDA TIPV WHERE TPV.COR_DO_ITEM = VERMELHO) AND TPV.COR_DO_ITEM = AZUL; De: oracle_br@yahoogrupos.com.br [mailto: oracle_br@yahoogrupos.com.br] Em nome de Junior Enviada em: Wednesday, 22 de August de 2012 14:12 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Essa é difici!!!Como fazer consulta com filtros diferentes para o mesmo campo? Um Exemplo: /*TABELA TPEDIDO_VENDAS: */ *ID* *NUMERO_DO_**PEDIDO * 1 1 2 2 3 3 4 4 5 5 /*TABELA TITENS_PEDIDO_VENDA: */ *ID * *ID_TPEDIDO_VENDAS * *ITEM * *COR_DO_ITEM* 1 1 A AZUL 2 1 B VERMELHO 3 1 A VERDE 4 2 A VERMELHO 5 3 A VERDE 6 3 A VERMELHO 7 4 B VERMELHO 8 4 A AZUL 9 4 A VERMELHO 10 5 A AZUL Agora que temos as tabelas, preciso selecionar nas duas tabelas os pedidos que tenham o item com cor azul e com cor vermelho, mas se tiver somente a cor azul ou se tiver somente a cor vermelho, não preciso selecioná-lo. Como ficaria, então, a resposta da minha seleção, baseada nos dados acima: *ID_PED_VDA * *NUMERO_PED_VENDA* *ID_ITEM_PED_VDA * *ITEM * *COR_DO_ITEM* 1 1 1 A AZUL 1 1 2 B VERMELHO 4 4 7 B VERMELHO 4 4 8 A AZUL 4 4 9 A VERMELHO Explicando melhor, preciso selecionar pedidos de vendas que possuem itens com a cor azul e itens com a cor vermelho. Este campo cor é preenchido somente com uma cor, então, serão selecionados somente os pedidos que possuirem itens com a cor azul e também com a cor vermelho. Mas os pedidos que tenham itens com azul e não tenham itens com a cor vermelho, não quero trazer nesta
[oracle_br] Re: Recompilar Objetos
Bem, eu não tenho um pronto justamente porque sempre que precisei usei o built-in, e como normalmente eu mesmo sou o DBA não tem problema - se o negócio é poupar trabalho eu diria Realmente pra vc tentar agendar essa execução com o DBA do cliente, mas se não for de forma nenhuma possível vc vai fazer algo tipo o script abaixo, selecionando da view de sistema que lista os objetos desejados o nome e os metadados necessários e montando uma string com o comando : no caso ele é para views, mas sem trabalho nenhum vc o adapta para outros objetos... set term off feedback off verify off pages 0 lines 500 trimspool on head off spool recomp_views.sql select 'SPOOL output_recomp.out' from dual / select 'ALTER VIEW ' || object_name || ' COMPILE;' from user_objects where object_type='VIEW' and STATUS 'VALID' / select 'exit' || chr(10) from dual / spool off exit == Nada impede de vc dar um up nesse carinha, como por exemplo já encaixar um SELECT na USER_ERRORS logo abaixo do comando de recompilação para o objeto, de modo que os eventuais erros já fiquem logados, etc tal, mas seria algo por aí []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Samuel Santos samuel.gsantos@... escreveu Chiappa, A questão é que não possuo a conta do SYS e nem mesmo acesso ao S.O do servidor do cliente. Por isso, pedi a força de sempre de vocês pra 'bolar' esse script e eu poder executar via PL/SQL no SCHEMA no qual temos acesso. Abs. De: J. Laurindo Chiappa jlchiappa@... Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 22 de Agosto de 2012 14:56 Assunto: [oracle_br] Re: Recompilar Objetos Nem precisa, o utlrp.sql (que vem junto com o banco e está em $ORACLE_HOME/rdbms/admin já faz isso []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Samuel Santos samuel.gsantos@ escreveu Pessoal, Alguém teria de 'bate pronto', um query, onde eu identifico os objetos que se encontram inválidos(VIEW MATERIALIZADA, VIEW dinâmica, etc...) no meu SCHEMA e consequentemente gerasse o comando para os recompilar? Desde já agradeço o apoio de todos. Abs. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Essa é dificirrrr!!!Como fazer consulta com filtros diferentes para o mesmo campo?
É Miltão, O baguio é louco mano! agora acabou neuronio... Parabéns pela criatividade da foto, ficou legal! rs Em 22 de agosto de 2012 15:22, Milton Bastos Henriquis Jr. miltonbas...@gmail.com escreveu: Mucio, sinto muito por ser tão chato, mas vc está errado de novo... rs Na tabela TITENS_PEDIDO_VENDA vc não deve pegar o id, e sim o ID_TPEDIDO_VENDAS. Senão não vai funcionar o JOIN. 2012/8/22 Mucio Oliveira omu...@gmail.com select '** pedido **' ,p.*, ,'** linhas azul ***' ,i_a.* ,'** linhas vermelho ***' ,i_v.* from TPEDIDO_VENDAS P ,( select id from TITENS_PEDIDO_VENDA where COR_DO_ITEM in ('AZUL') ) i_a ,( select id from TITENS_PEDIDO_VENDA where COR_DO_ITEM in ('VERMELHO') ) i_v where p.id = i_a.id and p_id = i_v.id Em 22 de agosto de 2012 15:11, Nino ninoba...@gmail.com escreveu: usa INTERSECT 2012/8/22 Milton Bastos Henriquis Jr. miltonbas...@gmail.com Também não funciona, Mucio. Dessa maneira aí vai retornar todos que tenham 'AZUL' ***OU*** 'VERMELHO'. Ele só quer os que tenham OS DOIS, ou seja, azul ***E*** vermelho. 2012/8/22 Mucio Oliveira omu...@gmail.com select '** pedido **' ,p.*, ,'** linhas ***' ,i.* from TPEDIDO_VENDAS P ,TITENS_PEDIDO_VENDA I where p.ID = i.ID_TPEDIDO_VENDAS and i.COR_DO_ITEM in ('AZUL','VERMELHO') Em 22 de agosto de 2012 14:44, Márcio - Grupos Oracle marcio_...@yahoo.com.br escreveu: ** Verdade, se precisar Júnior, inverta a tabela interna com a externa. -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto: oracle_br@yahoogrupos.com.br] Em nome de Milton Bastos Henriquis Jr. Enviada em: Wednesday, 22 de August de 2012 14:42 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Essa é difici!!!Como fazer consulta com filtros diferentes para o mesmo campo? Marcio, a cor do item está na tabela de itens (filha) e não tabela de pedidos (pai). Junior, não é nada dificil fazer essa query. Sabe fazer subselect? Pena que não tenho nenhuma base disponível aqui pra simular o teu caso e montar a query pra vc... mas seria mais ou menos isso: select * from TPEDIDO_VENDAS where ID IN (select ID_TPEDIDO_VENDAS from TITENS_PEDIDO_VENDA where COR_DO_ITEM = 'AZUL') and ID IN (select ID_TPEDIDO_VENDAS from TITENS_PEDIDO_VENDA where COR_DO_ITEM = 'VERMELHO'); Teste aí. 2012/8/22 Márcio - Grupos Oracle marcio_...@yahoo.com.br ** Se eu entendi, vê se esse select ajuda: SELECT TPV.NUMERO_DO_PEDIDO FROM TPEDIDO_VENDAS TPV WHERE TPV.NUMERO_DO_PEDIDO = (SELECT TPIV.ID_TPEDIDO_VENDAS FROM TITENS_PEDIDO_VENDA TIPV WHERE TPV.COR_DO_ITEM = VERMELHO) AND TPV.COR_DO_ITEM = AZUL; De: oracle_br@yahoogrupos.com.br [mailto: oracle_br@yahoogrupos.com.br] Em nome de Junior Enviada em: Wednesday, 22 de August de 2012 14:12 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Essa é difici!!!Como fazer consulta com filtros diferentes para o mesmo campo? Um Exemplo: /*TABELA TPEDIDO_VENDAS: */ *ID* *NUMERO_DO_**PEDIDO * 1 1 2 2 3 3 4 4 5 5 /*TABELA TITENS_PEDIDO_VENDA: */ *ID * *ID_TPEDIDO_VENDAS * *ITEM * *COR_DO_ITEM* 1 1 A AZUL 2 1 B VERMELHO 3 1 A VERDE 4 2 A VERMELHO 5 3 A VERDE 6 3 A VERMELHO 7 4 B VERMELHO 8 4 A AZUL 9 4 A VERMELHO 10 5 A AZUL Agora que temos as tabelas, preciso selecionar nas duas tabelas os pedidos que tenham o item com cor azul e com cor vermelho, mas se tiver somente a cor azul ou se tiver somente a cor vermelho, não preciso selecioná-lo. Como ficaria, então, a resposta da minha seleção, baseada nos dados acima: *ID_PED_VDA * *NUMERO_PED_VENDA* *ID_ITEM_PED_VDA * *ITEM * *COR_DO_ITEM* 1 1 1 A AZUL 1 1 2 B VERMELHO 4 4 7 B VERMELHO 4 4 8 A AZUL 4 4 9 A
[oracle_br] Re: duvidas sobre language
Bem, para saber o necessário sobre os params de NLS, vc vai ter que GOTO manuais Oracle de Globalization , mas o resumo do resumo é : no RDBMS Oracle, nós basicamente temos 3 itens de localização controláveis, a Linguagem (língua em que as msgs serão exibidas), o Território (o país/região do mundo a ser condiderada como 'local', para símbolos monetários e unidades, isso varia pra cada um) e o Characterset (o conjunto de codificação de caracteres : como vc deve saber, a tabela ASCII originalmente foi criada nos EUA e (entre outros motivos, também por limitações técnicas) só previa códigos para letras (sem acentos), números arábicos de 0 a 9 e alguns poucos sinais de pontuação usados no Inglês, então com a Globalização foi necessário adaptar e incluir caracteres, e como cada região (ou mesmo país) usa um conjunto diferente, vários arranjos - CODEPAGES - foram surgindo) Sobre a variável NLS_LANG : ela seta o valor que a sessão a conectar no database vai usar (pois o que está configurado no database, que vc descobre fazendo um select * from NLS_DATABASE_PARAMETERS; ) é o default, a ser aplicado apenas se a sessão não setar nada, e nesses manuais de Globalization vc vai descobrir que a variável pode conter as partes configuráveis : então, ao se setar NLS_LANG para AMERICAN_AMERICA.WE8ISO8859P1 vc está dizendo pro Oracle client que a sessão vai utilizar inglês Americano, notação monetária Aemricana e caracteres ASCII extras na codepage WE8ISO8859P1, é isso... Sendo assim , Não Faz muito Sentido vc ter um cliente de backup que configura um characterset X e uma Aplicação que configura um outro Y : ambos deveriam estar usando o do database Talvez o que aconteceu aí é que , cfrme http://levipereira.wordpress.com/2010/11/20/difference-between-we8mswin1252-and-we8iso8859p1-characterset/ nos lembra, antigamente o characterset default no Oracle era o WE8IOS8895P1, aí quando o pessoal montou o script de backup tascou esse como o setting da NLS_LANG : hoje em dia o default é o WE8MSWIN1252 , provavelmente o seu database deve estar usando esse, mas já que (tal como mostrado no link acima) quase todos os códigos para caracteres acentuados batem nos dois charactersets, o valor de WE8IOS8895P1 funciona (para caracteres em pt-br), então ninguém se preocupou em corrigir []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Paulo Couto paulopcto2002@... escreveu Amigos, tenho um script de backup de banco montado por terceiro, que seta a variavel NLS_LANG para SET NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1 antes de iniciar um EXPDP. Já uma outra empresa terceira instalou um sistema e nas estações tenho que instalar o client do oracle e setar a variavel NSL_LANG no registro do Windows paraAMERICAN_AMERICA.WE8MSWIN1252 Já o parametro NLS_LANGUAGE do meu banco 10.2.0.4 (windows) está setado com o valor AMERICA. Gostaria de entender melhor este parâmetro e qual o problema de uma aplicação usar um valor, já um backup usar outro, etc... Abs, Paulo. [As partes desta mensagem que não continham texto foram removidas]