Re: [oracle_br] Materialized View ????

2005-07-17 Por tôpico Rogerio Ribeiro
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

2005-07-17 Por tôpico Rogerio Ribeiro

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 ????

2005-07-17 Por tôpico Rogerio Ribeiro

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/