[oracle_br] Re: consulta select
Neste momento não tenho o tempo pra te montar um exemplo completo, mas pelo que entendi o que vc quer é uma soma Particionada dos valores de ICMS, mas no caso particionando por nota fiscal : http://askanantha.blogspot.com.br/2007/10/running-total-or-cumulative-sum-using.html e http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:1793764100346222947 são exemplos, e veja que em ambos além do OVER foi indicado um PARTITION, acho que é isso q tá faltando []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Márcio - Grupos Oracle marcio_cbj@... escreveu Boas. Depois de tanto tempo sem desenvolver, enferrujei total. Preciso de ajuda numa consulta, é o seguinte, tenho as informações e tenho um campo que tem o valor total da nota, e tenho outro campo que tem o ICMS para cada item da nota. Eu preciso somar o valor do ICMS e descontar do total da nota. Para uma nota funciona, mas quando coloco para todas o select fica doidão. Estou tentando utilizar o OVER, mas não estão agrupando por nada e está dando erro. SELECT dbnp.db_notap_nro AS NOTA, round(DBNF.DB_NOTA_VLR_PROD,2) + sum(round(dbnp.db_notap_vlr_icms,2)) OVER(ORDER BY dbnp.db_notap_nro) Valor Sem Tributação, round(DBNF.DB_NOTA_VLR_PROD,2) AS Valor Total Nota, dbnf.db_nota_cond_pgto AS Pagamento, dbnf.db_nota_operacao AS Natureza Operação, DBNF.DB_NOTA_DT_EMISSAO, dbc.db_cli_nome AS Cliente, dbc.db_cli_cidade AS Cidade, dbc.db_cli_situacao AS Situaçao, dbc.db_cli_lpreco AS Lista de Preço, dbc.db_cli_regiao AS Micro Região, dbp.db_prod_descricao AS Produto, dbtr.db_tbrep_nome AS Representante, dbtrs.db_tbrep_nome AS Superior, dbtf.db_tbfam_descricao AS Categoria do Produto, dbtra.db_tbatv_descricao AS Ramo Atividade, case when dbto.db_tbops_fat = 'S' then 'Venda' when dbto.db_tbops_fat = 'B' then 'Bonificação' when dbto.db_tbops_fat = 'D' then 'Devolução' when dbto.db_tbops_fat = 'N' then 'Outras Saídas' else 'Transferência' end AS Tipo Nota FROM xxx.DB_NOTA_PROD DBNP, xx.db_nota_fiscal dbnf, xx.db_cliente dbc, xx.db_produto dbp, xx.db_tb_repres dbtr, xx.db_tb_repres dbtrs, xx.db_tb_familia dbtf, xx.db_tb_ramo_ativ dbtra, xx.db_tb_opers dbto WHERE dbnp.db_notap_empresa = '016' AND DBNP.DB_NOTAP_EMPRESA = dbnf.db_nota_empresa AND DBNP.DB_NOTAP_NRO = DBNF.db_nota_nro AND DBNP.DB_NOTAP_SERIE = DBNF.DB_NOTA_SERIE AND DBC.DB_CLI_CODIGO = DBNF.DB_NOTA_CLIENTE AND DBNP.DB_NOTAP_PRODUTO = DBP.DB_PROD_CODIGO AND DBNF.DB_NOTA_REPRES = DBTR.DB_TBREP_CODIGO AND dbtr.db_tbrep_superior = dbtrs.db_tbrep_codigo AND DBP.DB_PROD_FAMILIA = DBTF.DB_TBFAM_CODIGO AND DBNF.DB_NOTA_OPERACAO = DBTO.DB_TBOPS_COD and dbc.db_cli_ramativ = dbtra.db_tbatv_codigo AND DBNF.DB_NOTA_DT_EMISSAO BETWEEN '02-JAN-2012' AND '02-JAN-2012' --AND DBNP.DB_NOTAP_NRO = 11727 --AND DBNP.DB_NOTAP_SERIE = 'D00' /*group by dbnp.db_notap_nro, DBNF.DB_NOTA_VLR_PROD, dbnf.db_nota_cond_pgto, dbnf.db_nota_operacao, DBNF.DB_NOTA_DT_EMISSAO, dbc.db_cli_nome, dbc.db_cli_cidade, dbc.db_cli_situacao, dbc.db_cli_lpreco, dbc.db_cli_regiao, dbp.db_prod_descricao, dbtr.db_tbrep_nome, dbtrs.db_tbrep_nome, dbtf.db_tbfam_descricao, dbtra.db_tbatv_descricao, dbto.db_tbops_fat*/ [As partes desta mensagem que não continham texto foram removidas]
RES: [oracle_br] Re: consulta select
Resolvido com o partition by. Obrigado chiappa. De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de J. Laurindo Chiappa Enviada em: Wednesday, 20 de June de 2012 14:36 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Re: consulta select Neste momento não tenho o tempo pra te montar um exemplo completo, mas pelo que entendi o que vc quer é uma soma Particionada dos valores de ICMS, mas no caso particionando por nota fiscal : http://askanantha.blogspot.com.br/2007/10/running-total-or-cumulative-sum-us ing.html e http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:17937641 00346222947 são exemplos, e veja que em ambos além do OVER foi indicado um PARTITION, acho que é isso q tá faltando []s Chiappa --- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br , Márcio - Grupos Oracle marcio_cbj@... escreveu Boas. Depois de tanto tempo sem desenvolver, enferrujei total. Preciso de ajuda numa consulta, é o seguinte, tenho as informações e tenho um campo que tem o valor total da nota, e tenho outro campo que tem o ICMS para cada item da nota. Eu preciso somar o valor do ICMS e descontar do total da nota. Para uma nota funciona, mas quando coloco para todas o select fica doidão. Estou tentando utilizar o OVER, mas não estão agrupando por nada e está dando erro. SELECT dbnp.db_notap_nro AS NOTA, round(DBNF.DB_NOTA_VLR_PROD,2) + sum(round(dbnp.db_notap_vlr_icms,2)) OVER(ORDER BY dbnp.db_notap_nro) Valor Sem Tributação, round(DBNF.DB_NOTA_VLR_PROD,2) AS Valor Total Nota, dbnf.db_nota_cond_pgto AS Pagamento, dbnf.db_nota_operacao AS Natureza Operação, DBNF.DB_NOTA_DT_EMISSAO, dbc.db_cli_nome AS Cliente, dbc.db_cli_cidade AS Cidade, dbc.db_cli_situacao AS Situaçao, dbc.db_cli_lpreco AS Lista de Preço, dbc.db_cli_regiao AS Micro Região, dbp.db_prod_descricao AS Produto, dbtr.db_tbrep_nome AS Representante, dbtrs.db_tbrep_nome AS Superior, dbtf.db_tbfam_descricao AS Categoria do Produto, dbtra.db_tbatv_descricao AS Ramo Atividade, case when dbto.db_tbops_fat = 'S' then 'Venda' when dbto.db_tbops_fat = 'B' then 'Bonificação' when dbto.db_tbops_fat = 'D' then 'Devolução' when dbto.db_tbops_fat = 'N' then 'Outras Saídas' else 'Transferência' end AS Tipo Nota FROM xxx.DB_NOTA_PROD DBNP, xx.db_nota_fiscal dbnf, xx.db_cliente dbc, xx.db_produto dbp, xx.db_tb_repres dbtr, xx.db_tb_repres dbtrs, xx.db_tb_familia dbtf, xx.db_tb_ramo_ativ dbtra, xx.db_tb_opers dbto WHERE dbnp.db_notap_empresa = '016' AND DBNP.DB_NOTAP_EMPRESA = dbnf.db_nota_empresa AND DBNP.DB_NOTAP_NRO = DBNF.db_nota_nro AND DBNP.DB_NOTAP_SERIE = DBNF.DB_NOTA_SERIE AND DBC.DB_CLI_CODIGO = DBNF.DB_NOTA_CLIENTE AND DBNP.DB_NOTAP_PRODUTO = DBP.DB_PROD_CODIGO AND DBNF.DB_NOTA_REPRES = DBTR.DB_TBREP_CODIGO AND dbtr.db_tbrep_superior = dbtrs.db_tbrep_codigo AND DBP.DB_PROD_FAMILIA = DBTF.DB_TBFAM_CODIGO AND DBNF.DB_NOTA_OPERACAO = DBTO.DB_TBOPS_COD and dbc.db_cli_ramativ = dbtra.db_tbatv_codigo AND DBNF.DB_NOTA_DT_EMISSAO BETWEEN '02-JAN-2012' AND '02-JAN-2012' --AND DBNP.DB_NOTAP_NRO = 11727 --AND DBNP.DB_NOTAP_SERIE = 'D00' /*group by dbnp.db_notap_nro, DBNF.DB_NOTA_VLR_PROD, dbnf.db_nota_cond_pgto, dbnf.db_nota_operacao, DBNF.DB_NOTA_DT_EMISSAO, dbc.db_cli_nome, dbc.db_cli_cidade, dbc.db_cli_situacao, dbc.db_cli_lpreco, dbc.db_cli_regiao, dbp.db_prod_descricao, dbtr.db_tbrep_nome, dbtrs.db_tbrep_nome, dbtf.db_tbfam_descricao, dbtra.db_tbatv_descricao, dbto.db_tbops_fat*/ [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] Re: RES: Alterar valores NLS_DATABASE_PARAMETERS
Amigos, Boa Tarde, Primeiramente muito obrigado pelo apoio de todos e desculpe a falta de detalhes na explicação. Ainda não consegui resolver o problema e descobrimos que o problema não está na parametrização do nls_database_parameters. Trocando em miúdos, o que está acontecendo é o seguinte. Temos 148 computadores que utilizam o nosso sistema em powerbuilder. Apenas em 2 deles, o servidor de homologação outro computador qualquer daqui estão com problema. Problema: Toda vez que digitamos por exemplo: 2,5 em algum campo decimal no sistema, o mesmo altera o valor para 250, ou seja, o valor está sempre sendo multiplicado por 100. Alguém já passou por este problema ? att, Reginaldo Figueredo De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 19 de Junho de 2012 16:45 Assunto: [oracle_br] Re: RES: Alterar valores NLS_DATABASE_PARAMETERS Exato, Milton. Reginaldo, não só para poder te dar uma resposta decente precisamos não só saber EXATAMENTE o que vc quer mudar, mas PRECISAMOS também da versão COMPLETA e EXATA do database (com 4 dígitos e incluindo a Edição), precisamos saber o Sistema Operacional (alguns procedimentos mudam dependendo do SO), e o ** MAIS IMPORTANTE ** : nós Precisamos Saber o porque vc quer mudar (qual o objetivo, se é fazer com que alguma tool/aplicação client mude a linguagem, se o objetivo é mudar comportamento dalguma tool de admin do database, qual é a tool/aplicação, etc) E também saber um pouco do seu ambiente (se é web, client-server) Estes últimos pontos são crucialmente Importantes, pois : a. o setting NLS das sessões SOBREPõE o setting do database (os NLSs do database tem que ser entendidos como um DEFAULT, que só é aplicado se o Client não especificar nada) : assim, talvez uma simples alteração no client, ou mesmo um ALTER SESSION, obtenha o efeito desejado - portanto, plz Explique qual é o efeito desejado b. se for Windows o SO, em alguns casos uma simples alteração no Registry pode solucionar, dependendo dos detalhes acima todos (o que vc quer alterar, onde quer alterar, pra que quer alterar, etc) c. sendo realmente AMERICA (ie, Inglês norte-americano) o setting NLS desejado, por ser essa a linguagem-base no RDBMS Oracle, ela sempre está presente, os arquivos e DLLs/libraries/etc referentes à ela sempre são instalados, não demandando assim adição/recriação de arquivos no servidor - as opções de alteração que não demandam mudança do database portanto passam a poder ser Bem consideradas []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Milton Bastos Henriquis Jr. miltonbastos@... escreveu Reginaldo, o grupo não aceita anexos, por isso ninguém recebeu o tal PDF. Vc precisa descrever aqui por texto mesmo. O mínimo que vc poderia fazer era dizer a versão exata do teu Database... e depois, claro, explicar o que que vc quer alterar. 2012/6/19 Reginaldo Figueredo regirj@... ** PessoALL, Primeiramente obrigado pelo apoio. Para me explicar melhor estou enviando um PDF direcionando o que eu preciso. No servidor de Homologação está em Brazilian e precisa mudar para American de acordo com a imagem no PDF. O CSAlter resolveria o meu problema ? Obrigado, att, Reginaldo De: ederson2001br ederson2001br@... Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 19 de Junho de 2012 14:38 Assunto: [oracle_br] RES: Alterar valores NLS_DATABASE_PARAMETERS A todos, Enviei o email em resposta à questão, mas tive um travamento aqui e não sei se foi uma ou duas vezes, já que me pareceu que o YahooGroups demorou a publicar a minha mensagem. Desculpe se ficou duplicado, desconsiderem minha resposta pois a do Chiappa ficou bem mais completa. Ederson Elias DBA Oracle http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 --- Em oracle_br@yahoogrupos.com.br, J. Laurindo Chiappa jlchiappa@ escreveu Pedro, na verdade nas versões mais recentes do database vc ABSOLUTAMENTE consegue sim alterar o characterset sem recriar, se os characterset destino contiver todos os characters do origem, ie, se for um superset - recriar banco para alterar characterset é algo do tempo do onça, que eventualmente em raros casos PODE ser necessário, principalmente se Realmente não houver nenhum superset disponível do set atualmente em uso, mas de forma nenhuma é Obrigatório, absolutamente não é algo que não dá pra fazer sem : http://mohamedazar.com/2010/05/18/character-set-migration-oracle-11g/ , http://www.oracle-base.com/articles/10g/character-set-migration.phpexemplifica pro 10g, okdoc ?? Isso se ** REALMENTE ** for chset a alteração misteriosa que o colega lá quer fazer na NLS_DATABASE_PARAMETER - verdade, muitas delas é, como eu disse, só alterar parãmetros, mas outras não... Agora, pensando um pouco em cima : ** talvez ** o
[oracle_br] Re: RES: Alterar valores NLS_DATABASE_PARAMETERS
Bem, comprovou-se que não é questão de database - embora o Grupo seja especializado em database, frequentemente pessoas que desenvolvem também passam por aqui... O problema em si clarificou um pouco, já não estamos tão no escuro, mas vc *** AINDA *** não deu alguns detalhes importantes - entre outros, vc NÂO diz a arquitetura (se é client/server ou WEB), NÃO dá a versão Exata de NADA (nem do Powerbuilder, nem do database, nem dos Sistemas Operacionais aonde estão o database, a aplicação e as máquinas clientes), NÃO diz se a conexão é via ODBC, OLEDB ou o que), qual o DRIVER ODBC usado (se da M$ ou da Oracle), NÃO fala um 'a' sobre o seu ambiente de modo geral (se há webserver, se há software de comunicação/terminal entre as máquinas-clientes e o banco), etc Todas essas infos seriam importantes pra quem conhece Powerbuilder pode palpitar, porém mesmo não sendo bem o meu caso (atuo principalmente como DBA, não desenvolvo muita coisa hoje em dia), vou CHUTAR e assumir que a sua Aplicação é client/server, que a conexão com o database é via ODBC, que o SO nas máquinas-clientes é Windows e que não há nenhum terminal server/software de comunicação a mais entre as máquinas clientes e a aplicação e o database Nesse cenário, alguns palpites : a. muitos drivers ODBC levam em conta o LOCALE das máquinas (ie, a linguagem, a formatação de valores/números e os demais regional settings) do SO - Compare os regional settings de uma máquina que funciona com essas que não b. drivers ODBC *** necessariamente *** são Incapazes de conectar diretamente no database, eles Montam em cima de um software Oracle client instalado na máquina : Compare as variáveis / settings de Oracle Client de uma máquina que funciona com essas que não ... Sendo Windows o SO, isso fica no registry, em LOCAL MACHINE/SOFTWARE / ORACLE / diretoriodoclient c. eu me lembro vagamente que o Powerbuilder tem configurações próprias que podem ser setadas, era um arquivo tipo pbxxx.exe.config , ou algo do tipo : Cheque com algum Expert em pb exatamente onde isso fica e COMPARE a config de uma máquina que funciona com essas que não... d. A versão do runtime - dos componentes mínimos que a máquina-cliente precisa ter pra rodar uma app powerbuilder, na verdade - pode intrerferir, Compare se é a mesma entre as máquinas []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Reginaldo Figueredo regirj@... escreveu Amigos, Boa Tarde, Primeiramente muito obrigado pelo apoio de todos e desculpe a falta de detalhes na explicação. Ainda não consegui resolver o problema e descobrimos que o problema não está na parametrização do nls_database_parameters. Trocando em miúdos, o que está acontecendo é o seguinte. Temos 148 computadores que utilizam o nosso sistema em powerbuilder. Apenas em 2 deles, o servidor de homologação outro computador qualquer daqui estão com problema. Problema: Toda vez que digitamos por exemplo: 2,5 em algum campo decimal no sistema, o mesmo altera o valor para 250, ou seja, o valor está sempre sendo multiplicado por 100. Alguém já passou por este problema ? att, Reginaldo Figueredo De: J. Laurindo Chiappa jlchiappa@... Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 19 de Junho de 2012 16:45 Assunto: [oracle_br] Re: RES: Alterar valores NLS_DATABASE_PARAMETERS Exato, Milton. Reginaldo, não só para poder te dar uma resposta decente precisamos não só saber EXATAMENTE o que vc quer mudar, mas PRECISAMOS também da versão COMPLETA e EXATA do database (com 4 dígitos e incluindo a Edição), precisamos saber o Sistema Operacional (alguns procedimentos mudam dependendo do SO), e o ** MAIS IMPORTANTE ** : nós Precisamos Saber o porque vc quer mudar (qual o objetivo, se é fazer com que alguma tool/aplicação client mude a linguagem, se o objetivo é mudar comportamento dalguma tool de admin do database, qual é a tool/aplicação, etc) E também saber um pouco do seu ambiente (se é web, client-server) Estes últimos pontos são crucialmente Importantes, pois : a. o setting NLS das sessões SOBREPõE o setting do database (os NLSs do database tem que ser entendidos como um DEFAULT, que só é aplicado se o Client não especificar nada) : assim, talvez uma simples alteração no client, ou mesmo um ALTER SESSION, obtenha o efeito desejado - portanto, plz Explique qual é o efeito desejado b. se for Windows o SO, em alguns casos uma simples alteração no Registry pode solucionar, dependendo dos detalhes acima todos (o que vc quer alterar, onde quer alterar, pra que quer alterar, etc) c. sendo realmente AMERICA (ie, Inglês norte-americano) o setting NLS desejado, por ser essa a linguagem-base no RDBMS Oracle, ela sempre está presente, os arquivos e DLLs/libraries/etc referentes à ela sempre são instalados, não demandando assim adição/recriação de arquivos no servidor - as
Re: [oracle_br] Mascarar Dados
Pesquise por Oracle Data Masking. 2012/6/20 Jales Jose Moraes malphig...@yahoo.com.br ** Pessoal preciso levar algumas tabelas do banco de produção para o de desenvolvimento. Acontece que preciso no ato do dblink (ou após) mascarar os dados (menos a pk). É possível fazer o procedimento no oracle? Seria através de alguma função ou algo no sentido? [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