RE: [oracle_br] View materializada.

2008-02-25 Por tôpico Jose Resende Neto
Pessoal, alguém pode me ajudar com isso?

 

Obrigado.

Neto.

 

  _  

From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On
Behalf Of ze_neto2002
Sent: sexta-feira, 22 de fevereiro de 2008 15:46
To: oracle_br@yahoogrupos.com.br
Subject: [oracle_br] View materializada.

 

Pessoal,

antes de mais nada...
Versão do banco: Oracle9i Enterprise Edition Release 9.2.0.7.0 - 
64bit Production

Agora sim. Tenho uma view usada para gerar um relatório que está 
muito lenta. Quero substituir essa view por uma view materializada 
para melhorar a performance do relatório.
Alguém pode me ajudar com a sintaxe para a criação da view 
materializada? Como faço para criar com refresh todos os dias às 
23:00?
Na materializada não posso criar com os nomes dos campos como uma 
view normal? Por exemplo:
CREATE VIEW NOME_VIEW
(campo1, campo2, campo3)
AS
SELECT campo1, campo2, campo3
FROM NOME_TABLE;

Valew!!!
Neto.

 



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



RE: [oracle_br] Material SQL Loader

2007-10-22 Por tôpico Jose Resende Neto
Internet, meu amigo

Vai no Google e procura por sql loader.

Lá aparece esse link, entre vários: http://www.orafaq.com/faqloadr.htm

 

//Neto

 

  _  

From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On
Behalf Of Edson Santos
Sent: segunda-feira, 22 de outubro de 2007 09:30
To: oracle_br@yahoogrupos.com.br
Subject: [oracle_br] Material SQL Loader

 

pessoal, onde consigo material sobre *SQL Loader?

*Abracos*
*
-- 
-- 
Edson Queiroz Santos
--

[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] EXCEPTION RAISE

2007-06-06 Por tôpico Jose Resende Neto
Roberto,

 

além disso, ele executa de dentro pra fora.

Ou seja, você já está tratando o seu “RAISE a” do BEGIN 4 com o EXCEPTION
WHEN OTHERS 4.

Quando for pro primeiro BEGIN, ele não vai executar o DBMS_OUTPUT.put_line
('Erro: A'); porque a exceção já foi tratada com o WHEN OTHERS do BEGIN 4.

 

//Neto 

 

  _  

From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On
Behalf Of Roberto Fernandes Sobrinho
Sent: quarta-feira, 6 de junho de 2007 15:00
To: [EMAIL PROTECTED]; oracle_br@yahoogrupos.com.br;
[EMAIL PROTECTED]; OraOracle; Oracle - Grupos
Subject: [oracle_br] EXCEPTION RAISE

 

Caros MESTRES Boa Tarde!

Alguem poderia me explicar pq quando eu levanto um EXCEPTION apontando para
blocos externos ele entra no primeiro EXCEPTION OTHERS ENCONTRADO, ATE MESMO
NO BLOCO ONDE É LEVANTADO O EXCEPTION.

DECLARE
a EXCEPTION;
BEGIN--1
BEGIN--2
BEGIN--3
BEGIN--4
RAISE a;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('OTHERS 4');
END;--4
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('OTHERS 3');
END;--3
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('OTHERS 2');
END;--2
EXCEPTION
WHEN a
THEN
NULL;
DBMS_OUTPUT.put_line ('Erro: A');
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('OTHERS 1');
END;--1
-- 
Roberto Fernandes Sobrinho
Deenvolvedor Oracle

[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] EXCEPTION RAISE

2007-06-06 Por tôpico Jose Resende Neto
Roberto,

 

você precisa colocar um “WHEN a THEN” dentro do EXCEPTION do BEGIN 4 para
que ele execute o “RAISE a”.

Se você não colocar o “WHEN a THEN” ele só vai entender o “WHEN OTHERS”
mesmo.

 

Tente assim:

 

DECLARE

a EXCEPTION;

 

BEGIN--1

 

BEGIN--2

 

BEGIN--3

 

   BEGIN--4

 

   RAISE a;

   EXCEPTION

   WHEN a THEN

   DBMS_OUTPUT.put_line
('Exceção a');

 

   WHEN OTHERS THEN

 
DBMS_OUTPUT.put_line ('OTHERS 4');

   END;--4

 

EXCEPTION

   WHEN OTHERS THEN

   DBMS_OUTPUT.put_line ('OTHERS
3');

END;--3

 

EXCEPTION

WHEN OTHERS THEN

   DBMS_OUTPUT.put_line ('OTHERS 2');

END;--2

 

EXCEPTION

WHEN a THEN

NULL;

DBMS_OUTPUT.put_line ('Erro: A');

 

WHEN OTHERS THEN

DBMS_OUTPUT.put_line ('OTHERS 1');

END;--1

 

Espero ter ajudado.

Neto.

 

  _  

From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On
Behalf Of Roberto Fernandes Sobrinho
Sent: quarta-feira, 6 de junho de 2007 15:00
To: [EMAIL PROTECTED]; oracle_br@yahoogrupos.com.br;
[EMAIL PROTECTED]; OraOracle; Oracle - Grupos
Subject: [oracle_br] EXCEPTION RAISE

 

Caros MESTRES Boa Tarde!

Alguem poderia me explicar pq quando eu levanto um EXCEPTION apontando para
blocos externos ele entra no primeiro EXCEPTION OTHERS ENCONTRADO, ATE MESMO
NO BLOCO ONDE É LEVANTADO O EXCEPTION.

DECLARE
a EXCEPTION;
BEGIN--1
BEGIN--2
BEGIN--3
BEGIN--4
RAISE a;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('OTHERS 4');
END;--4
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('OTHERS 3');
END;--3
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('OTHERS 2');
END;--2
EXCEPTION
WHEN a
THEN
NULL;
DBMS_OUTPUT.put_line ('Erro: A');
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('OTHERS 1');
END;--1
-- 
Roberto Fernandes Sobrinho
Deenvolvedor Oracle

[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: Cursor dúvida.

2007-06-04 Por tôpico Jose Resende Neto
Faz assim:

 

Declare

CURSOR LISTAS IS
SELECT .

begin
FOR REG1 IN LISTAS LOOP 
AUX_P_DATA :=FN_ACHA_DATA_BI
(REG1.CO_SERVICOMANUTENCAO,V_DATAINI,V_DATAFIM,P_DATA);
IF AUX_P_DATA IS NOT NULL THEN

(Faz o insert que você quer);

END IF; 


end loop;

end;

 

Assim ele só faz o insert se AUX_P_DATA for NOT NULL.

Não resolve?

 

Espero ter ajudado.

Neto.

 

  _  

From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On
Behalf Of rzzanatta
Sent: segunda-feira, 4 de junho de 2007 15:46
To: oracle_br@yahoogrupos.com.br
Subject: [oracle_br] Re: Cursor dúvida.

 

Bom acho que expressei errado: tenho os registro que o cursor me 
trouxe aí, e aí ele entra no loop, só que no loop ele chama uma 
função pra retornar uma data, e se essa data vier nula, esse registro 
do cursor nao poderá ser inserido na tabela, por isso tenho que pular 
esse regstro e ir para o proximo. (é + ou - assim)

Como entao farei isso de pular um registro e ir para o proximo?

CURSOR LISTAS IS
SELECT .

begin
FOR REG1 IN LISTAS LOOP 
AUX_P_DATA :=FN_ACHA_DATA_BI
(REG1.CO_SERVICOMANUTENCAO,V_DATAINI,V_DATAFIM,P_DATA);
IF AUX_P_DATA = NULL THEN

EXIT LOOP;

END IF; 


end loop;

end;

--- Em [EMAIL PROTECTED] 
os.com.br, "Rafael Alexandre Schmitt" 
<[EMAIL PROTECTED]> escreveu
>
> Teste se for diferente de null...se for diferente de null você faz 
o que precisa senão você pula para o próximo registro.
> 
> 
> FOR REG1 IN LISTAS LOOP 
> 
> IF reg1.AUX_P_DATA IS NOT NULL THEN
> 
> faça alguma coisa.
> 
> END IF; 
> 
> end loop;
> 
> Ou coloque no seu select a condição que você quer restringir.
> 
> 
> --
> Rafael Alexandre Schmitt
> [EMAIL PROTECTED] || www.hbtec.com.br
> Blumenau - Santa Catarina
> 
> - Original Message - 
> From: rzzanatta 
> To: [EMAIL PROTECTED]  os.com.br 
> Sent: Monday, June 04, 2007 3:22 PM
> Subject: [oracle_br] Cursor dúvida.
> 
> 
> Tenho esse curdor, só que quando entrar no loop, queria que 
quando o 
> AUX_P_DATA FOR NULL não aconteça nada, pule para o proximo 
registro 
> do cursor, como faço para pular para o proximo registro? 
> 
> CURSOR LISTAS IS
> SELECT .
> 
> begin
> FOR REG1 IN LISTAS LOOP 
> 
> IF reg1.AUX_P_DATA = NULL THEN
> 
> EXIT LOOP;
> 
> END IF; 
> 
> 
> end loop;
> 
> end;
> 
> 
> 
> 
> 
> 
> 
> --
--
> Esta mensagem foi verificada pelo E-mail Protegido Terra.
> Scan engine: McAfee VirusScan / Atualizado em 04/06/2007 / 
Versão: 5.1.00/5045
> Proteja o seu e-mail Terra: http://mail. 
terra.com.br/ 
> 
> 
> 
> --
--
> 
> 
> No virus found in this incoming message.
> Checked by AVG Free Edition. 
> Version: 7.5.472 / Virus Database: 269.8.7/830 - Release Date: 
3/6/2007 12:47
> 
> 
> 
> [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] Cursor dúvida.

2007-06-04 Por tôpico Jose Resende Neto
Faz assim:

 

Declare

CURSOR LISTAS IS
SELECT .

begin
FOR REG1 IN LISTAS LOOP 

IF reg1.AUX_P_DATA is NOT NULL THEN

(coloca aqui o que você quer que ele faça); 

end if;


end loop;

end;

 

Assim ele só vai fazer o que tiver dentro do IF quando o valor do campo
AUX_P_DATA for não nulo. Quando for nulo, ele não faz nada e passa
automaticamente para o próximo registro.

Não resolve?

 

Espero ter ajudado.

Neto.

 

 

  _  

From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On
Behalf Of rzzanatta
Sent: segunda-feira, 4 de junho de 2007 15:23
To: oracle_br@yahoogrupos.com.br
Subject: [oracle_br] Cursor dúvida.

 

Tenho esse curdor, só que quando entrar no loop, queria que quando o 
AUX_P_DATA FOR NULL não aconteça nada, pule para o proximo registro 
do cursor, como faço para pular para o proximo registro? 

CURSOR LISTAS IS
SELECT .

begin
FOR REG1 IN LISTAS LOOP 

IF reg1.AUX_P_DATA = NULL THEN

EXIT LOOP;

END IF; 


end loop;

end;



 



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



RE: [oracle_br] SELECIONAR REGISTROS QUE SE REPETEM

2007-06-01 Por tôpico Jose Resende Neto
Vinicius,

 

tenta assim:

 

select party_number

from apps_hz_parties

group by party_number

having count(1) > 1;

 

Espero ter ajudado.

//Neto

 

  _  

From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On
Behalf Of Vinicius Trintin
Sent: sexta-feira, 1 de junho de 2007 10:58
To: oracle_br@yahoogrupos.com.br
Subject: [oracle_br] SELECIONAR REGISTROS QUE SE REPETEM

 


tenho que selecionar em uma coluna apenas os registros que se repetem
nela...
por ex... sao paulo 
rio de janeiro
sao paulo

ai selecionar sao paulo...
eu fiz da seguinte forma

select distinct(a.party_number) from apps_hz_parties a
where 1 < (select count(party_number) from apps_hz_parties where
a.party_number = party_number);

porem como eu tenho mto registros fica um pouco lento... alguem sabe uma
forma mais inteligente de se fazer??

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

__
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]



RE: [oracle_br] Problema com Function

2007-05-30 Por tôpico Jose Resende Neto
Wilson,

 

você deve passar os valores dos parâmetros para o cursor também.

Tenta assim:

 

cursor cur1 (v_cod_empresa in varchar, v_num_ap in number) is
select ap_valores.valor, ap_valores.cod_tip_val
from ap_valores
where ap_valores.cod_empresa = v_cod_empresa --// aqui se fica '01' ele acha

dados
and ap_valores.num_ap = v_num_ap --// aqui se fica 15846 ele acha dados
and ap_valores.ies_versao_atual = 'S';

 

…

 

open cur1 (v_cod_empresa, v_num_ap);

 

….

 

Espero ter ajudado.

//Neto

 

 

  _  

From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On
Behalf Of Wilson Ribeiro
Sent: quarta-feira, 30 de maio de 2007 16:50
To: oracle_br@yahoogrupos.com.br
Subject: [oracle_br] Problema com Function

 

Senhores da lista, boa tarde.

me deparei hoje com um problema, que nunca tinha visto.

criei uma function, e nela passo alguns parametros, dentro da function 
defini um cursor e um select para o mesmo, acontece o seguinte, qdo eu chamo

essa function, passando os parametros normais, o select só retorna null, qdo

fixo os dados no select, ele encontra e o result set vem com dados.
abaixo está o código da function:

create or replace function fn_valor_ap(v_num_ap in ap_valores.num_ap%TYPE,
v_cod_empresa in ap_valores.cod_empresa%TYPE,
v_valor_ap in ap_valores.valor%TYPE)

return number is
result number;
oper varchar2(1);

Valor Number;
Codigo Number;

cursor cur1 is
select ap_valores.valor, ap_valores.cod_tip_val
from ap_valores
where ap_valores.cod_empresa = v_cod_empresa --// aqui se fica '01' ele acha

dados
and ap_valores.num_ap = v_num_ap --// aqui se fica 15846 ele acha dados
and ap_valores.ies_versao_atual = 'S';
begin
result := v_valor_ap;

open cur1;

loop
fetch cur1 into valor, codigo;

exit when cur1%notFound;

select ies_alt_val_pag
into oper
from tipo_valor
where tipo_valor.cod_tip_val = codigo
and tipo_valor.cod_empresa = v_cod_empresa;

if oper = '+' then
result := result + valor;
else
result := result - valor;
end if;
end loop;

return(result);
EXCEPTION
WHEN OTHERS THEN
RETURN(NULL);
end fn_valor_ap;

Alguém teria idéia do que se passa?, obrigado por qquer ajuda.

- - - - - - - - - - -
[ ]'s

Wilson Ribeiro
[EMAIL PROTECTED]  com.br

[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] Erro no UPDATE

2007-05-18 Por tôpico Jose Resende Neto
Alex,

 

por que você está usando um SELECT FOR UPDATE no cursor Você já faz o
update dentro do loop. Acho que isso pode ter a ver com o problema.

 

//Neto

 

  _  

From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On
Behalf Of Alex Ferreira
Sent: sexta-feira, 18 de maio de 2007 08:39
To: oracle_br@yahoogrupos.com.br; [EMAIL PROTECTED]
Subject: [oracle_br] Erro no UPDATE

 

Bom dia Pessoal!

Estou fazendo um update para atualizar todos os campos da tabela onde o
"campo A ( Tabela A ) = campo b (Tabela B)". Porém, qdo acaba o update, ele
atualiza além dos campos que quero. Quando o campo A está vazio, ele
preenche o campo B.
O que pode estar dando errado? Fiz um Join nas tabelas e no select parece
estar td bem.
Abaixo, segue a rotina de UPDATE:
E outra coisa, depois do update, fiz um count antes e depois e tem mais
alguma rotina para ver se a tabela está ok?

DECLARE
v_data_emissao DATE;
v_ap_numero NUMBER(15);
CURSOR c_atualiza IS
SELECT a.dat_emissao, b.anun_ap_numero
FROM [EMAIL PROTECTED] a, anuncios b
WHERE a.anuc_codigo = b.anun_anuc_codigo
AND a.agen_codigo = b.anun_agen_codigo
FOR UPDATE OF b.anun_data_emissao_fat_sap;
BEGIN
OPEN c_atualiza;
LOOP
FETCH c_atualiza INTO v_data_emissao, v_ap_numero;
EXIT WHEN c_atualiza%NOTFOUND;
UPDATE anuncios
SET anun_data_emissao_fat_sap = v_data_emissao
WHERE anun_ap_numero = v_ap_numero;
END LOOP;
COMMIT;
CLOSE c_atualiza;
END;

Valews

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

 



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