Re: [oracle_br] Materialized View ????
Boa noite Welvis! Use a package DBMS_MVIEW Ex: DBMS_MVIEW.REFRESH('NOME_VIEW'); Welvis Douglas Silva Moreto [EMAIL PROTECTED] escreveu: Estou criando uma view Materialized View e no select contem varias tabelas com join como que faço pra dar um refresh na view quando ha alteração em qualquer uma da tabelas. Obrigado Welvis Douglas __ Converse com seus amigos em tempo real com o Yahoo! Messenger http://br.download.yahoo.com/messenger/ __ Pesquisar Histórico: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ Moderadores da lista:Dorian Anderson Soutto [EMAIL PROTECTED] Fernanda Damous [EMAIL PROTECTED] Alisson Aguiar [EMAIL PROTECTED] __ http://br.groups.yahoo.com/group/oracle_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: [EMAIL PROTECTED] O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!. __ Converse com seus amigos em tempo real com o Yahoo! Messenger http://br.download.yahoo.com/messenger/ [As partes desta mensagem que não continham texto foram removidas] __ Histórico: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ Falar com os Moderadores:([EMAIL PROTECTED]) Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar __ Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [oracle_br] Passagem de Pârametros P/ Procedure
Heverson, o segredo de trabalhar com parâmetros tipo Record está na chamada a procedure. Na hora de chamar a procedure você tem que usar o construtor do tipo de dados usado: Exemplo: nome_procedure(tipo_array(elementos)); Heverson Morais [EMAIL PROTECTED] escreveu:Bruno Quando necessitei de algo parecido PL/SQL Table você encontra a documentação no manual PL/SQL User's Guide and Reference. Segue abaixo um exemplo de como utilizar. Espero que ajude []'s Heverson declaração do tipo vetor rFINANCIAMENTO Ces_Calc.TabFINANCIAMENTO; --(definido na package ces_calc) i BINARY_INTEGER; begin -- executando o procedimento Ces_Calc.CALCULA_ANUIDADE_PARCELAS(rVL_ANUIDADE ,rPC_DESCONTO_PADRAO ,rVL_PRIMEIRA_PARCELA ,rVL_PARCELAS_MENSAIS ,rFINANCIAMENTO ,'N' ); i := rFINANCIAMENTO.First; WHILE i IS NOT NULL LOOP -- aqui trato o retorno em rFINANCIAMENTO end loop; end --- Delcaração/definição do tipo vetor na package CREATE OR REPLACE PACKAGE Ces_Calc IS TYPE RecFinanciamento IS RECORD (TP_FINANCIAMENTO VARCHAR2(4) ,PC_FINANCIADANUMBER(6,3) ,VL_FINANCIADANUMBER(12,2) ,DS_FINANCIAMENTO VARCHAR2(50) ,DT_INICIO_VCTO DATE ,DT_VIGENCIA_PARC DATE ,SQ_FINANCIAMENTO NUMBER ); TYPE TabFinanciamento IS TABLE OF RecFinanciamento INDEX BY BINARY_INTEGER; -- procedure que retorna o tipo vetor PROCEDURE calcula_anuidade_parcelas( r_vl_anuidade IN OUT NUMBER ,r_pc_desconto_padrao IN OUT NUMBER ,r_vl_primeira_parcela IN OUT NUMBER ,r_vl_parcelas IN OUT NUMBER ,rFINANCIAMENTOIN OUT TabFinanciamento ,pSN_MATRICULA IN VARCHAR2 DEFAULT 'S' ) is iBINARY_INTEGER; R_FINANCIAMENTO C_FINANCIAMENTO%rowtype; FINANCIAMENTO_VAZIATabFinanciamento; BEGIN rFINANCIAMENTO := FINANCIAMENTO_VAZIA; -- inicialização open C_FINANCIAMENTO(v_nr_matricula ,v_mes_ano_competencia ,v_nr_ano_semestre); fetch C_FINANCIAMENTO into R_FINANCIAMENTO; i := 1; while C_FINANCIAMENTO%found loop rFINANCIAMENTO(i).TP_FINANCIAMENTO := R_FINANCIAMENTO.TP_FINANCIAMENTO; rFINANCIAMENTO(i).PC_FINANCIADA:= R_FINANCIAMENTO.PC_FINANCIADA; rFINANCIAMENTO(i).VL_FINANCIADA:= R_FINANCIAMENTO.VL_FINANCIADA; rFINANCIAMENTO(i).DS_FINANCIAMENTO := R_FINANCIAMENTO.DS_FINANCIAMENTO; rFINANCIAMENTO(i).DT_INICIO_VCTO := R_FINANCIAMENTO.DT_INI_VCTO; rFINANCIAMENTO(i).DT_VIGENCIA_PARC := R_FINANCIAMENTO.DT_INI_VGC; rFINANCIAMENTO(i).SQ_FINANCIAMENTO := R_FINANCIAMENTO.SQ_FINANCIAMENTO; fetch C_FINANCIAMENTO into R_FINANCIAMENTO; i := i + 1; end loop; close C_FINANCIAMENTO; END - Original Message - From: Bruno Daniel Borges [EMAIL PROTECTED] To: oracle_br@yahoogrupos.com.br Sent: Friday, July 15, 2005 3:02 PM Subject: [oracle_br] Passagem de Pârametros P/ Procedure Pessoal, Preciso desenvolver uma PROCEDURE que receba como parâmetro algo parecido como um ARRAY... O problema, é que esse conteúdo (dinâmico) não esta no banco, é um processamento em memória da aplicação... e precisaria fazer algo como um LOOP no conteúdo desse parâmetro para que a procedure fizesse a gravação no banco... Nesse caso a única solução seria criar uma tabela TEMPORÁRIA baixando esses dados da memória nela e depois trabalhar com ela dentro da Procedure ? Porque além de gravar os dados, depois terei que trabalhar com eles dentro da procedure, gerando por exemplo registros em outras tabelas e alterando outros. Desde já agradeço ! Bruno Borges -- Universidade Anhembi Morumbi - http://www.anhembi.br A mais criativa e inovadora universidade brasileira [As partes desta mensagem que não continham texto foram removidas] __ Histórico: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ Falar com os Moderadores:([EMAIL PROTECTED]) Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar __ Links do Yahoo! Grupos __ Histórico: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ Falar com os Moderadores:([EMAIL PROTECTED]) Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar __ - Links do Yahoo! Grupos Para visitar o site do seu grupo
Re: [oracle_br] Materialized View ????
Seguinte Jonathan, a view materializada com atualização on commit só pode ser criada com uma única tabela. Alem disso deve ser criado um log de view materializada para a tabela em questão. Atenciosamente, Rogério Nascimento Jonathan Barbosa [EMAIL PROTECTED] escreveu: Olha que interessante!! Alguém poderia me explicar as regras usadas pelo Oracle nas views materializadas ON COMMIT? SQL CREATE MATERIALIZED VIEW TESTE2 2 refresh complete on commit 3AS 4 select last_name from employees; select last_name from employees * ERROR at line 4: ORA-12054: cannot set the ON COMMIT refresh attribute for the materialized view SQL CREATE MATERIALIZED VIEW TESTE2 2 refresh complete on commit 3 AS 4 select e.last_name from employees e,departments d; Materialized view created. - Original Message - From: Jonathan Barbosa [EMAIL PROTECTED] To: oracle_br@yahoogrupos.com.br Sent: Friday, July 15, 2005 4:52 PM Subject: Re: [oracle_br] Materialized View Não sei porque o Oracle não está permitindo a criação desta view materializada, talvez seja devido ao número de tabelas ou outra coisa que não saberia te explicar. Podes usar a opção ON DEMAND ou START WITH e NEXT para especificar um tempo de atualização. Agora, esta consulta retorna um número enorme de dados como em data warehouses? Pelo número de tabelas especificadas a opção on COMMIT poderá até trazer problemas de performance se alguma das tabelas mencionadas é acessada com uma certa frequência. Estes dados serão requeridos com que frequência?As tabelas bases são atualizadas de quanto em quanto tempo? Jonathan - Original Message - From: Welvis Douglas Silva Moreto [EMAIL PROTECTED] To: oracle_br@yahoogrupos.com.br Sent: Friday, July 15, 2005 1:54 PM Subject: Re: [oracle_br] Materialized View ELE DA UM O SEGUINTE ERRO QUANDO USO ESSA OPÇÃO. ORA-12054: cannot set the ON COMMIT refresh attribute for the materialized view ESSE É O SELECT QUE ESTOU USANSDO SELECT PROD_ORIG.ID_PRODUTO ID_PRODUTOORIG, DECODE(PCON.ID_PRODUTODESTINO,NULL,PROD_ORIG.ID_PRODUTO,PCON.ID_PRODUTODESTINO) ID_PRODUTODEST, DECODE(PCON.ID_PRODUTODESTINO,NULL,1,PCON.PC_CONVERSAO) PC_CONVERSAO, PROD.ID_CATEGORIACOML, PROD.ID_GRUPOPRODTRIB, PROD.ID_PRODUTOFAMILIA, PROD.ID_CLASSETRANSPORTE, PROD.ID_PRODUTOPESO, PROD.ID_CLASSEPRODPCP, PROD.ID_PRODUTO_NCM, PROD.ID_CLASSESEGURO, PROD.ID_GRUPOCONTPROD, PROD.ID_PRODUTOAFV, PROD.ID_UNIDADE, PROD.DS_PRODUTO, PROD.PS_KGS_LIQ, PROD.VOLUME_M3, PROD.BO_GENERICO, PROD.NR_UNIDADES, PROD.PS_KGS_BRUTO, PROD.CD_PESQAUXILIAR, PROD.QT_PRODUTO_PALLET, PROD.TP_ORIGEM_MERCADORIA, PROD.DH_CADASTRO, PROD.BO_ATIVO, PROD.CD_DATAFLEX, PROD.DH_ULT_ALTER, PROD.CM_COMPRIMENTO, PROD.QT_VOLUMES, PROD.CM_LARGURA, PROD.CM_ALTURA, PROD.TP_PRODUTO, UNID.ABREVIATURA, UNID.DS_UNIDADE, CATG.DS_CATEGORIACOML, TPPR.ID_TIPOPRODUTO, TPPR.DS_TIPOPRODUTO FROM PRODUTO PROD, PRODUTO PROD_ORIG, PRODUTOCONVERSAO PCON, UNIDADE UNID, CATEGORIACOMLCATG, TIPOPRODUTO TPPR WHERE PROD.ID_PRODUTO = DECODE(PCON.ID_PRODUTODESTINO,NULL,PROD_ORIG.ID_PRODUTO,PCON.ID_PRODUTODESTINO) AND PROD_ORIG.ID_PRODUTO = PCON.ID_PRODUTOORIGEM(+) AND PCON.BO_PADRAO_REL(+) = 'S' AND UNID.ID_UNIDADE = PROD.ID_UNIDADE AND CATG.ID_CATEGORIACOML = PROD.ID_CATEGORIACOML AND TPPR.ID_TIPOPRODUTO = CATG.ID_TIPOPRODUTO / --- Jonathan Barbosa [EMAIL PROTECTED] escreveu: - Use a opção ON COMMIT CREATE MATERIALIZED VIEW teste REFRESH FAST ON COMMIT . . . Jonathan - Original Message - From: Welvis Douglas Silva Moreto [EMAIL PROTECTED] To: oracle_br@yahoogrupos.com.br Sent: Friday, July 15, 2005 12:06 PM Subject: [oracle_br] Materialized View Estou criando uma view Materialized View e no select contem varias tabelas com join como que faço pra dar um refresh na view quando ha alteração em qualquer uma da tabelas. Obrigado Welvis Douglas __ Converse com seus amigos em tempo real com o Yahoo! Messenger http://br.download.yahoo.com/messenger/ __ Pesquisar Histórico: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ Moderadores da lista:Dorian Anderson Soutto [EMAIL PROTECTED] Fernanda Damous [EMAIL PROTECTED] Alisson Aguiar [EMAIL PROTECTED] __ http://br.groups.yahoo.com/group/oracle_br/