Re: [oracle_br] Performance em Insert into Select

2008-01-16 Por tôpico Rodrigo Moreno - Hydronorth S/A
Se possível, passe o código do insert com select completo, dae fica mais fácil 
ajudar.


  - Original Message - 
  From: Zumba 
  To: Oracle BR 
  Sent: Wednesday, January 16, 2008 11:31 AM
  Subject: {Disarmed} [oracle_br] Performance em Insert into Select


  Olá pessoal,

  estou com uma situação um pouco estranha.
  Um select um pouco grande, mas está bem indexando e
  retornando rápido. O resultado do select é inserido
  numa tabela na forma de INSERT INTO TB_XX SELECT.

  Este processamento está em package e ao executar este
  trecho, a performance degrada demais levando 2min p/
  cada registro.
  Mais estranho é se pegar o mesmo trecho e executar
  manualmente no sqlplus, roda sem problemas.

  A tabela a ser inserida não dispara trigger, mas tem 4
  indices sendo que 3 deles tem 4 colunas cada.
  Existe alguma forma de implementar ou configurar p/
  resolver este problema. Já utilizamos FORALL e nada.

  Bom, se tiverem alguma sugestão e puderem contribuir,
  agradeço muito.

  Abraço

  Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
armazenamento!
  http://br.mail.yahoo.com/


   
  -- 
  Esta mensagem foi verificada pelo sistema de antivírus e 
  acredita-se estar livre de perigo. 
-- 
Esta mensagem foi verificada pelo sistema de antivírus e
 acredita-se estar livre de perigo.



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



Re: [oracle_br] Debug 8i

2008-01-16 Por tôpico Rodrigo Moreno - Hydronorth S/A
Vc precisa compilar FOR DEBUG pra funcionar.

Att.,
Rodrigo Moreno
Cambé - Paraná

  - Original Message - 
  From: Thiago H. Pojda 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Tuesday, January 15, 2008 1:30 PM
  Subject: {Disarmed} [oracle_br] Debug 8i


  Pessoal,

  Estive estudando ferramentas para depuração de códigos PL/SQL mas só
  encontrei as que suportam bancos acima do 9i.
  Já tentei SQL Developer, JDeveloper, SQuirreL SQL e SQL Tools mas ainda
  nada.

  O SQL Developer é o que chega mais perto, abre a conexão para debug e
  executa o que pedi mas não pára em nenhum breakpoint.

  Alguém tem alguma idéia do que posso utilizar?

  Obrigado.

  -- 
  Thiago Henrique Pojda
  www.duohost.com.br
  DuoHost - Atendimento

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



   
  -- 
  Esta mensagem foi verificada pelo sistema de antivírus e 
  acredita-se estar livre de perigo. 
-- 
Esta mensagem foi verificada pelo sistema de antivírus e
 acredita-se estar livre de perigo.



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



Re: [oracle_br] URGENTE !

2008-01-15 Por tôpico Rodrigo Moreno - Hydronorth S/A
Acho melhor reiniciar o servidor (se for possível), pois vc vai precisar de uma 
senha DBA p/ matar o processo que está rodando.



  - Original Message - 
  From: Michel Temer Feres 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Tuesday, January 15, 2008 8:45 AM
  Subject: {Disarmed} Re: [oracle_br] URGENTE !


  o problema é que eu não sei fazer isso, sou desenvolvedor e não temos dba, 
como faço isso ?

  Rodrigo Moreno - Hydronorth S/A <[EMAIL PROTECTED]> escreveu: Procura o 
processo da trigger no banco e mata ele que dae vc consegue apagar a trigger.

  Abraço,
  Rodrigo Moreno
  Cambé - Paraná

  - Original Message - 
  From: Michel Temer Feres 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Tuesday, January 15, 2008 8:24 AM
  Subject: {Disarmed} [oracle_br] URGENTE !

  Bom dia a todos !
  Estou tentando excluir uma trigger que dentro dela está chamando uma 
procedure, e acredito que ela está em loop no meu banco de dados oracle Release 
9.0.1.3., e está dando a seguinte mensage:

  timeout occurred while waiting to lock object ACADEMICO.TRG_ALTERA_CREDITO

  Gostaria de saber qual será o procedimento adequado para exluir esse objeto.
  Desde já agradeço !

  No aguardo, Michel.

  -
  Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
armazenamento! 

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

  -- 
  Esta mensagem foi verificada pelo sistema de antivírus e 
  acredita-se estar livre de perigo. 
  -- 
  Esta mensagem foi verificada pelo sistema de antivírus e
  acredita-se estar livre de perigo.

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

  -
  Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
armazenamento! 

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



   
  -- 
  Esta mensagem foi verificada pelo sistema de antivírus e 
  acredita-se estar livre de perigo. 
-- 
Esta mensagem foi verificada pelo sistema de antivírus e
 acredita-se estar livre de perigo.



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



Re: [oracle_br] Como melhorar performance em consult a com função

2008-01-15 Por tôpico Rodrigo Moreno - Hydronorth S/A
Você pode usar uma Função de Tabela em PIPELINE.

Rodrigo Moreno
Cambé - Paraná

  - Original Message - 
  From: foruns paganato 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Monday, January 14, 2008 5:32 PM
  Subject: {Disarmed} Re: [oracle_br] Como melhorar performance em consulta com 
função


  Gleyson:
  - A função em questão (VERIFICA_URA), faz vários selects e consistências
  internamente. Como disse apenas consultas;
  - A função retorna apenas uma string, onde dentro da função eu vou
  concatenando as informações que quero pegar na saída;
  - Quanto a opção de "procedure", eu preciso que seja retornado os valores
  dentro de um select normal conforme apresentado. Eu não sei se é possível
  fazer com procedure, se for poderia me ajudar, dando exemplo, etc ???;
  - Eu não sei a estrutura de armazenamento, pois é num cliente que estou
  fazendo esse procedimento.

  Att.,
  Alexandre

  Em 14/01/08, Gleyson Melo <[EMAIL PROTECTED]> escreveu:
  >
  > Fala Paganato!
  >
  > Para resolver esse problema, é necessário que a gente conheça algumas
  > variáveis a mais:
  >
  > - Você chama a função VERIFICA_URA apenas uma vez, ou você coloca o
  > nome do campo que vem de uma tabela, ao colocar esse select dentro de
  > outro?
  > - O que a função VERIFICA_URA faz? SELECT numa tabela (Possivelmente)?
  > Quantos quantos blocos? Essa tabela possui estatísticas atualizadas?
  > - Você tem uma estrutura de Storage? Discos SATA? IDE?
  > - Os dados da URA vem em forma de uma "stringona". Você faz a
  > concatenação dentro da função?
  > - Já que você retorna apenas um registro, você não poderia criar uma
  > procedure com diversos parâmetros de saída para evitar de fazer vários
  > SUBSTRING?
  >
  > Abraços.
  >
  > Em 14/01/08, paganato <[EMAIL PROTECTED] >
  > escreveu:
  > >
  > > Bom dia a todos.
  > > Tenho a seguinte situação abaixo: Tenho um sub select que chama um
  > > função; Essa função retorna uma string; Um select quebra a string
  > > retornada;
  > >
  > > SELECT SUBSTR(A.URA, 1, 70) NOME,
  > > SUBSTR(A.URA, 71, 1) EMPRESA,
  > > SUBSTR(A.URA, 72, 4) ANO,
  > > SUBSTR(A.URA, 76, 14) NUM_OCORRENCIA,
  > > SUBSTR(A.URA, 90, 1) TIPO_OCORR,
  > > SUBSTR(A.URA, 91, 16) DH_FINAL
  > > FROM (SELECT VERIFICA_URA('(19)36082902') URA FROM DUAL) A
  > >
  > > Estou precisando melhorar a performance desse select mas não sei mais
  > > oq fazer.
  > >
  > > Quando executo apenas SELECT VERIFICA_URA('(19)36082902') URA FROM DUAL
  > > o tempo é de 0,157s, e o seelct todo o tempo é de 0,953s.
  > > Esses valores variam. Preciso que fique no tempo menor, se alguem tiver
  > > uma solução melhor e mais eficiente aceito sugestões.
  > >
  > > Att.,
  > > Alexandre
  > >
  > >
  > >
  >
  > --
  > Atenciosamente,
  > Gleyson Melo
  > Oracle Database 10g Administrator Certified Professional
  >
  > [As partes desta mensagem que não continham texto foram removidas]
  >
  > 
  >

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



   
  -- 
  Esta mensagem foi verificada pelo sistema de antivírus e 
  acredita-se estar livre de perigo. 
-- 
Esta mensagem foi verificada pelo sistema de antivírus e
 acredita-se estar livre de perigo.



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



Re: [oracle_br] URGENTE !

2008-01-15 Por tôpico Rodrigo Moreno - Hydronorth S/A
Procura o processo da trigger no banco e mata ele que dae vc consegue apagar a 
trigger.

Abraço,
Rodrigo Moreno
Cambé - Paraná

  - Original Message - 
  From: Michel Temer Feres 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Tuesday, January 15, 2008 8:24 AM
  Subject: {Disarmed} [oracle_br] URGENTE !


  Bom dia a todos !
  Estou tentando excluir uma trigger que dentro dela está chamando uma 
procedure, e acredito que ela está em loop no meu banco de dados oracle Release 
9.0.1.3., e está dando a seguinte mensage:

  timeout occurred while waiting to lock object ACADEMICO.TRG_ALTERA_CREDITO

  Gostaria de saber qual será o procedimento adequado para exluir esse objeto.
  Desde já agradeço !

  No aguardo, Michel.

  -
  Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
armazenamento! 

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



   
  -- 
  Esta mensagem foi verificada pelo sistema de antivírus e 
  acredita-se estar livre de perigo. 
-- 
Esta mensagem foi verificada pelo sistema de antivírus e
 acredita-se estar livre de perigo.



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



Re: [oracle_br] Alguem pode me ajudar???

2008-01-11 Por tôpico Rodrigo Moreno - Hydronorth S/A
Olá, eu uso a função abaixo para retornar linhas em colunas.


create or replace FUNCTION rowtocol ( p_slct IN VARCHAR2,
  p_dlmtr IN VARCHAR2 DEFAULT ',' ) RETURN 
VARCHAR2

   AUTHID CURRENT_USER AS

   TYPE c_refcur IS REF CURSOR;

   lc_str VARCHAR2(4000);
   lc_colval VARCHAR2(4000);
   c_dummy c_refcur;

   l number;

BEGIN
   OPEN c_dummy FOR p_slct;
   LOOP
 FETCH c_dummy INTO lc_colval;
 EXIT WHEN c_dummy%NOTFOUND;
 lc_str := lc_str || p_dlmtr || lc_colval;
   END LOOP;
   CLOSE c_dummy;
   RETURN SUBSTR(lc_str,2);
END;


Compila ela no seu banco e tenta fazer assim:

SELECT codtit, emp, razaosocial, codtitular, nometit, codass, nomeass,
   ROWTOCOL('SELECT deptitu FROM TABELADEP WHERE CODTIT = '||codtit,' / ')
  FROM ...
  
Se você me passar a estrutura e as chaves eu monto mais certinho pra você.

Abraço,
Rodrigo Moreno
Cambé - Paraná

  - Original Message - 
  From: adealves22 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Friday, January 11, 2008 4:30 PM
  Subject: {Disarmed} [oracle_br] Alguem pode me ajudar???


  Boa tarde pessoal!

  Estou precisando de ajuda para emitir um relatório. 
  Temos o Oracle 10g e preciso emitir um relatório unindo tres tabelas.
  Tabela de Titulares, Tabela de Associados e Tabela de Dependentes.
  Como funciona o esquema.
  O titular tem um associado e dependentes cadastrados.
  O Associado tambem tem os mesmos dependentes do titular cadastrados.

  Preciso que o relatório seja apresentado como o exemplo abaixo:
  exemplo:
  cod emp razaosocial codtitular nometit codass nomeass deptitu depass
  1 empresa ltda 1 maria 1 joao maria joao
  joao maria
  jose jose 

  Como fazer o select para que não traga no relatorio as informações 
  duplicadas varias vezes que é o meu problema.
  Está trazendo assim: 

  codemp razaosocial codtitular nometit codass nomeass deptitu depass
  1 empresa ltda 1 maria 1 joao maria joao
  1 empresa ltda 1 maria 1 joao joao maria
  1 empresa ltda 1 maria 1 joao jose jose 
  1 empresa ltda 1 maria 1 joao maria joao
  1 empresa ltda 1 maria 1 joao joao maria
  1 empresa ltda 1 maria 1 joao jose jose 

  Agradeço desde já!!!

  Adeilda



   
  -- 
  Esta mensagem foi verificada pelo sistema de antivírus e 
  acredita-se estar livre de perigo. 
-- 
Esta mensagem foi verificada pelo sistema de antivírus e
 acredita-se estar livre de perigo.



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



Re: [oracle_br] DBMS_JOB.Change

2007-12-21 Por tôpico Rodrigo Moreno - Hydronorth S/A
Bom Dia Fabiano,

Tenta assim:

BEGIN
  
DBMS_JOB.CHANGE(1,'CODIGO_A_EXECURAR;',TRUNC(SYSDATE),'TRUNC(SYSDATE+1)+23/24');
END;
/

Att.,
Rodrigo Moreno
Arapongas - Paraná

  - Original Message - 
  From: Fabiano Arndt 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Friday, December 21, 2007 10:14 AM
  Subject: {Disarmed} [oracle_br] DBMS_JOB.Change


  Bom dia Pessoal,

  to com uma dificuldade pra mudar o horário de execução de um Job, gostaria
  que ele fosse executado todo dia às 23:00hs
  a versão do oracle é a 9i. SO win2003 server.

  já fiz várias tentativas e não está funcionando, por isso resolvi apelar
  para o grupo.

  a forma que eu fiz foi como mostrado abaixo:

  begin
  dbms_job.change(
  JOB => 1,
  WHAT => null,
  NEXT_DATE => TRUNC(SYSDATE)+23/24,
  INTERVAL => 'TRUNC(SYSDATE)+23/24'
  );
  end;
  /

  o problema é que tá executando sempre depois da meia noite, tentei mudar os
  parâmetros para

  TRUNC(SYSDATE)+22/24

  para executar as 22:00hs, mas continua executando depois da meia noite.

  gostaria que alguém me desse uma luz nisso, ou me passasse algum material
  que explique como funcionam os parâmetros dessa função.

  obrigado a todos,

  Fabiano.

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



   
  -- 
  Esta mensagem foi verificada pelo sistema de antivírus e 
  acredita-se estar livre de perigo. 
-- 
Esta mensagem foi verificada pelo sistema de antivírus e
 acredita-se estar livre de perigo.



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