Re: RES: RES: RES: [oracle_br] Re: Ajuda Erro ORA-00445: background process "J000" did not start after 120 seconds

2016-10-11 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Sim, não é incomum que os jobs/processos/configs default NÂO SIRVAM pra Todo e 
Qualquer Cenário, sim - até porque eles são pensados para os casos genéricos, 
mais comuns, né não ?
 Além disso, o coitado do RDBMS *** não sabe *** exatamente para o que vc usa 
seu banco e seus objetos, então normalmente ele tenta analisar tudo - não é 
impossível, por exemplo, que uma tabela AUDITORianãoseioque NÂO contenha dados 
de usuários, então não sei se faz muito sentido coletar stats dela  Né ?
 
  []s
  
Chiappa

Re: RES: RES: [oracle_br] Re: Ajuda Erro ORA-00445: background process "J000" did not start after 120 seconds

2016-09-23 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Vixe - rodar sem Suporte é uma coisa ruim mas q acontece mas sem Licença aí é 
danado... 
 Então tá ** claro ** o que vc tem que fazer , é meter medo nesse pessoal de 
levar uma mega-ultra-master multa por pirataria (que é o que acontece se vc 
rodar sem licença, googla que vc acha uns tantos quantos casos pra servir de 
exemplo) e solicitar Suporte pra ter acesso aos patches e bugfixes, bem como 
ser atendido pelos técnicos do Suporte da Oracle - enquanto isso não acontece 
não tem jeito, é ir subindo na mão e quebrando o galho até que apareça um 
bugzão show-stopper que não deixa mais o banco levantar, é isso...
 
 []s
 
   Chiappa

Re: RES: [oracle_br] Re: Ajuda Erro ORA-00445: background process "J000" did not start after 120 seconds

2016-09-23 Por tôpico jlchia...@yahoo.com.br [oracle_br]
na verdade o colega diz que é Windows, então não é PSU mas sim bundle patch mas 
realmente, se saiu CPU  ou PSU logo já vem o bundle para Windows...

[]s

  Chiappa

Re: RES: [oracle_br] Re: Ajuda Erro ORA-00445: background process "J000" did not start after 120 seconds

2016-09-23 Por tôpico angelo angelolis...@gmail.com [oracle_br]
Complementando a informacao informacao...  Patchset13390677   vulgo
Oracle 11gr2  11.2.0.4

Sendo que ja tem depois dele tem o 23530402 ( cpu julho16)

Tenho um servidor que foram aplicados..ta rodando já



2016-09-23 15:47 GMT-03:00 jlchia...@yahoo.com.br [oracle_br] <
oracle_br@yahoogrupos.com.br>:

>
>
> Opa, pára tudo :
>
> "Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 -"
>
> 11.2.0.1, sério  Depois do mundo de bugfixes introduzidos no 11.2.0.2,
> 11.2.0.3 E 11.2.0.4 ??? Mega-ultra-biga-suspeito de vc estar caindo num bug
> já conhecido, talvez no mesmo que indiquei, talvez num dos outros
> Aposto e ganho que o Suporte vai mandar vc Aplicar o patchset mais recente
> JUNTO com o último PSU - "Bundle" do caso de Windows
>
> []s
>
>   Chiappa
> 
>


Re: RES: [oracle_br] Re: Ajuda Erro ORA-00445: background process "J000" did not start after 120 seconds

2016-09-23 Por tôpico angelo angelolis...@gmail.com [oracle_br]
Vixe  babou então...

Sugiro, documentar tudo que ta acontecendo e avisar a eles..

Nao ter licença já não é uma coisa boa, por motivos que extrapolam usar o
Oracle e não é objeto da discussão aqui..
Ficar sem o Oracle, desatualizado é pior ainda porque podem ocorrer de
topar em algum bug que ja foi resolvido e a empresa parar porque não
resolveu o primeiro item na entrada..

3 regras do DBA...   (pegando emprestado do Fabio Telles)


   - 1ª O DBA deve educar o usuário. O DBA sempre diz o jeito certo de
   fazer as coisas.
   - 2ª Meta medo no cara. Coisas ruins vão acontecer se ele não ouvir o
   DBA deles.
   - 3ª Crie descontentamento. Se eles se recusarem a ouvir as 2 primeiras
   regras ferra eles, deixa o banco cair.

http://savepoint.blog.br/3-regras-do-dba/


E o meu amigo la o problema dele é quase o mesmo.. nao tem licença e fica
rebootando o servidor todo dia... e vai vivendo...





2016-09-23 15:54 GMT-03:00 'Yahoo' alisson...@yahoo.com.br [oracle_br] <
oracle_br@yahoogrupos.com.br>:

>
>
> Na verdade a empresa não tem licença para essa base...
>
>
>
> Esse é o grande problema.. L
>
>
>
> *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
> *Enviada em:* sexta-feira, 23 de setembro de 2016 15:48
> *Para:* oracle_br@yahoogrupos.com.br
> *Assunto:* Re: RES: [oracle_br] Re: Ajuda Erro ORA-00445: background
> process "J000" did not start after 120 seconds
>
>
>
>
>
> Opa, pára tudo :
>
> "Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 -"
>
> 11.2.0.1, sério  Depois do mundo de bugfixes introduzidos no 11.2.0.2,
> 11.2.0.3 E 11.2.0.4 ??? Mega-ultra-biga-suspeito de vc estar caindo num bug
> já conhecido, talvez no mesmo que indiquei, talvez num dos outros
> Aposto e ganho que o Suporte vai mandar vc Aplicar o patchset mais recente
> JUNTO com o último PSU - "Bundle" do caso de Windows
>
> []s
>
>   Chiappa
>
> 
>


RES: RES: [oracle_br] Re: Ajuda Erro ORA-00445: background process "J000" did not start after 120 seconds

2016-09-23 Por tôpico 'Yahoo' alisson...@yahoo.com.br [oracle_br]
Na verdade a empresa não tem licença para essa base...

 

Esse é o grande problema.. :( 

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Enviada em: sexta-feira, 23 de setembro de 2016 15:48
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: RES: [oracle_br] Re: Ajuda Erro ORA-00445: background process 
"J000" did not start after 120 seconds

 

  

Opa, pára tudo :

"Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 -"

11.2.0.1, sério  Depois do mundo de bugfixes introduzidos no 11.2.0.2, 
11.2.0.3 E 11.2.0.4 ??? Mega-ultra-biga-suspeito de vc estar caindo num bug já 
conhecido, talvez no mesmo que indiquei, talvez num dos outros Aposto e 
ganho que o Suporte vai mandar vc Aplicar o patchset mais recente JUNTO com o 
último PSU - "Bundle" do caso de Windows

[]s

  Chiappa





Re: RES: [oracle_br] Re: Ajuda Erro ORA-00445: background process "J000" did not start after 120 seconds

2016-09-23 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Opa, pára tudo :

"Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 -"

11.2.0.1, sério  Depois do mundo de bugfixes introduzidos no 11.2.0.2, 
11.2.0.3 E 11.2.0.4 ??? Mega-ultra-biga-suspeito de vc estar caindo num bug já 
conhecido, talvez no mesmo que indiquei, talvez num dos outros Aposto e 
ganho que o Suporte vai mandar vc Aplicar o patchset mais recente JUNTO com o 
último PSU - "Bundle" do caso de Windows

[]s

  Chiappa


RES: [oracle_br] Re: Ajuda com trigger para incluir permissão

2014-12-02 Por tôpico Marlon Pasquali - TI - Peccin S.A. marlon.pasqu...@peccin.com.br [oracle_br]
Voce tem que colocar

 VALUES(rec.matricula, 3, ' ', :new.codfornec,   1, 
SYSDATE);


De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
Enviada em: terça-feira, 2 de dezembro de 2014 16:43
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Ajuda com trigger para incluir permissão


Pesquisando o erro consertei essa linha:

 VALUES(   empregados.matricula, 3, ' ', :new.codfornec,   
1, SYSDATE);

Agora só ficou o erro :

 PL/SQL: ORA-00984: column not allowed here



Em 2 de dezembro de 2014 16:15, Eduardo Perdomo 
panc...@gmail.commailto:panc...@gmail.com escreveu:
Boa tarde.

Preciso criar uma trigger que ao cadastrar um novo fornecedor automaticamente 
inclua permissão de acesso.
Tenho a tabela fornecedores, empregados e liberação.
Preciso , que ao cadastrar um novo fornecedor, varrer todo o cadastro de 
empregados e incluir a permissão na tabela liberação para todos os empregados.

Segue abaixo o que estou tentando:


CREATE OR REPLACE TRIGGER insere_131
 BEFORE
  INSERT
 ON fornecedores
REFERENCING NEW AS NEW OLD AS OLD
 FOR EACH ROW
DECLARE
cursor c_t is select matricula from empregados ;

BEGIN

 for rec in c_t loop
INSERT INTO liberacao(CODFUNC, CODTABELA, CODIGOA,CODIGON, 
CODFUNC_LIB, DATA_LIB)
 VALUES(c_t.matricula, 3, ' ', :new.codfornec,   1, 
SYSDATE);
  end loop;
END insere_131;


Os erros:
PLS-00225
ORA-00984








Eduardo Perdomo
Consultor de Implantação
Grupo PC Sistemas - www.grupopc.com.brhttp://www.grupopc.com.br
(21) 6845-8592
panc...@gmail.commailto:panc...@gmail.com
eduardo.perd...@pcinformatica.com.brmailto:eduardo.perd...@pcinformatica.com.br
Blog: eduardo.perdomo.nom.brhttp://eduardo.perdomo.nom.br



--

Eduardo Perdomo
Consultor de Implantação
Grupo PC Sistemas - www.grupopc.com.brhttp://www.grupopc.com.br
(21) 6845-8592
panc...@gmail.commailto:panc...@gmail.com
eduardo.perd...@pcinformatica.com.brmailto:eduardo.perd...@pcinformatica.com.br
Blog: eduardo.perdomo.nom.brhttp://eduardo.perdomo.nom.br



RES: [oracle_br] Re: Ajuda com trigger para incluir permissão

2014-12-02 Por tôpico Marlon Pasquali - TI - Peccin S.A. marlon.pasqu...@peccin.com.br [oracle_br]
Sim,
Sempre que você for ler um cursor, você vai usar o seu index.


Syntax
The syntax for the CURSOR FOR LOOP in Oracle/PLSQL is:
FOR record_index in cursor_name
LOOP
   {...statements...}
END LOOP;
Parameters or Arguments
record_index is the index of the record.
cursor_name is the name of the cursor that you wish to fetch records from.
statements are the statements of code to execute each pass through the CURSOR 
FOR LOOP.

Att
Marlon



De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
Enviada em: terça-feira, 2 de dezembro de 2014 17:21
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Re: Ajuda com trigger para incluir permissão


Compilou aqui , mas esse rec são os dados que o cursor referencia ?

Em 2 de dezembro de 2014 16:44, Marlon Pasquali - TI - Peccin S.A. 
marlon.pasqu...@peccin.com.brmailto:marlon.pasqu...@peccin.com.br [oracle_br] 
oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br escreveu:

Voce tem que colocar

 VALUES(rec.matricula, 3, ' ', :new.codfornec,   1, 
SYSDATE);


De: oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br 
[mailto:oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br]
Enviada em: terça-feira, 2 de dezembro de 2014 16:43
Para: oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Ajuda com trigger para incluir permissão


Pesquisando o erro consertei essa linha:

 VALUES(   empregados.matricula, 3, ' ', :new.codfornec,   
1, SYSDATE);

Agora só ficou o erro :

 PL/SQL: ORA-00984: column not allowed here



Em 2 de dezembro de 2014 16:15, Eduardo Perdomo 
panc...@gmail.commailto:panc...@gmail.com escreveu:
Boa tarde.

Preciso criar uma trigger que ao cadastrar um novo fornecedor automaticamente 
inclua permissão de acesso.
Tenho a tabela fornecedores, empregados e liberação.
Preciso , que ao cadastrar um novo fornecedor, varrer todo o cadastro de 
empregados e incluir a permissão na tabela liberação para todos os empregados.

Segue abaixo o que estou tentando:


CREATE OR REPLACE TRIGGER insere_131
 BEFORE
  INSERT
 ON fornecedores
REFERENCING NEW AS NEW OLD AS OLD
 FOR EACH ROW
DECLARE
cursor c_t is select matricula from empregados ;

BEGIN

 for rec in c_t loop
INSERT INTO liberacao(CODFUNC, CODTABELA, CODIGOA,CODIGON, 
CODFUNC_LIB, DATA_LIB)
 VALUES(c_t.matricula, 3, ' ', :new.codfornec,   1, 
SYSDATE);
  end loop;
END insere_131;


Os erros:
PLS-00225
ORA-00984








Eduardo Perdomo
Consultor de Implantação
Grupo PC Sistemas - www.grupopc.com.brhttp://www.grupopc.com.br
(21) 6845-8592
panc...@gmail.commailto:panc...@gmail.com
eduardo.perd...@pcinformatica.com.brmailto:eduardo.perd...@pcinformatica.com.br
Blog: eduardo.perdomo.nom.brhttp://eduardo.perdomo.nom.br



--

Eduardo Perdomo
Consultor de Implantação
Grupo PC Sistemas - www.grupopc.com.brhttp://www.grupopc.com.br
(21) 6845-8592
panc...@gmail.commailto:panc...@gmail.com
eduardo.perd...@pcinformatica.com.brmailto:eduardo.perd...@pcinformatica.com.br
Blog: eduardo.perdomo.nom.brhttp://eduardo.perdomo.nom.br



--

Eduardo Perdomo
Consultor de Implantação
Grupo PC Sistemas - www.grupopc.com.brhttp://www.grupopc.com.br
(21) 6845-8592
panc...@gmail.commailto:panc...@gmail.com
eduardo.perd...@pcinformatica.com.brmailto:eduardo.perd...@pcinformatica.com.br
Blog: eduardo.perdomo.nom.brhttp://eduardo.perdomo.nom.br



RES: [oracle_br] Re: Ajuda

2012-07-11 Por tôpico Ricardo Ferro | Vitarella
Oi Aninha,

 

Via sqlplus podes fazer assim:

 

column res new_value max_val 

SELECT MAX(ID_PK) + 1 res 

FROM   sua_tabela; 

 

drop sequence seq_sua_tabela ; 

create sequence seq_sua_tabela start with max_val;

 

 

Ricardo Ferro

www.vitarella.com.br

  mailto:rfe...@vitarella.com.br 

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome 
de Ana Cássia Japiassu Diniz
Enviada em: quarta-feira, 11 de julho de 2012 14:58
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Re: Ajuda

 

Obrigada a todos pela ajuda.

 

Consegui fazer praticamente toda a alteração que preciso. Falta apenas a 
criação da sequence para esta tabela, cujo o valor inicial deverá ser o último 
valor do novo atributo adicionado na tabela.

Como eu posso definir o start with da sequence com este valor?

Não posso colocar isso fixo, pois esta alteração precisarei fazer em três 
bancos que contêm dados diferentes.

 

Muito obrigada.

 

Ana

Em 11 de julho de 2012 14:13, J. Laurindo Chiappa

jlchia...@yahoo.com.br mailto:jlchia...@yahoo.com.br escreveu:

 

 **

 

 

 Bom dia, Ana - não vejo grandes problemas, mas vc deverá saber que :

 

 a) no RDBMS Oracle vc normalmente não consegue mudar a PK, então ela 

 tem que ser dropada e recriada com o novo atributo que vc quer : 

 Obviamente, então, se essa PK a ser alterada é usada como origem para 

 FK de outras tabelas, logicamente vc deverá dropar as FKs primeiro 

 (quebrando o uso da PK como pai), e depois da nova PK criada, vc vai 

 ter que recriar as FKs, apontando para a nova PK Obviamente 

 também, se a PK vai ser em cima de uma nova coluna, essa nova coluna 

 tem que ser Adicionada não só na tabela-pai MAS também nas 

 tabelas-filhas, para servir de base para a nova FK referenciando a 

 nova PK... É muito, muito frequente o pessoal se esquecer deste 

 Importante detalhe e se dar mal na hora da implementação por causa das FKs..

 

 b) vc até poderia, ao menos em parte, fazer via DBMS_REDEFINITION, mas 

 imho é mais fácil/direto executar os comandos manualmente, e também já 

 que vc quer a maneira mais segura, eu Recomendaria que vc solicitasse 

 uma janela de manutenção, em que o banco estará inacessível para vc 

 poder fazer as alterações todas sem se preocupar com locks eventuais, 

 acessos de usuário, dados sendo entrados/alterados/removidos, etc...

 

 c) como é Normal em qquer alteração, vc Tem que Ter um backup o mais 

 recente possível, Válido e testado, antes de proceder : muitas vezes 

 se agenda alterações do tipo para depois da janela de backup 

 Exatamente por esse motivo...

 

 Isto posto, um exemplo rápido - apenas notando que vc infelizmente Não 

 nos Dá a versão, então estou supondo ao menos versão 10gr2 :

 

 = criação de tabela com PK e de algumas FKs que a referenciam :

 

 SYSTEM@O10GR2::SQLcreate table T_PAI (c1 number, c2 varchar2(40), c3

 varchar2(80) );

 

 Tabela criada.

 

 SYSTEM@O10GR2::SQLalter table T_PAI add constraint T_PAI_PK primary 

 key (c1, c2);

 

 Tabela alterada.

 

 SYSTEM@O10GR2::SQLinsert into T_PAI values(1, 'Chave 1', 'Linha 1');

 

 1 linha criada.

 

 SYSTEM@O10GR2::SQLinsert into T_PAI values(2, 'Chave 2', 'Linha 2');

 

 1 linha criada.

 

 SYSTEM@O10GR2::SQLcreate table T_FILHA1 (c1 number, c2 varchar2(40), 

 c3

 varchar2(80) );

 

 Tabela criada.

 

 SYSTEM@O10GR2::SQLcreate table T_FILHA2 (c1 number, c2 varchar2(40), 

 c3

 varchar2(80) );

 

 Tabela criada.

 

 SYSTEM@O10GR2::SQLalter table T_FILHA1 add constraint T_FILHA1_FK 

 foreign key (c1, c2) references T_PAI(c1, c2);

 

 Tabela alterada.

 

 SYSTEM@O10GR2::SQLalter table T_FILHA2 add constraint T_FILHA2_FK 

 foreign key (c1, c2) references T_PAI(c1, c2);

 

 Tabela alterada.

 

 SYSTEM@O10GR2::SQLinsert into T_FILHA1 values(1, 'Chave 1', 'Filha 

 1');

 

 1 linha criada.

 

 SYSTEM@O10GR2::SQLinsert into T_FILHA2 values(2, 'Chave 2', 'Filha 

 2');

 

 1 linha criada.

 

 SYSTEM@O10GR2::SQLcommit;

 

 Commit concluido.

 

 == veja que Não Posso dropar PK usada por FKs :

 

 SYSTEM@O10GR2::SQLalter table T_PAI drop constraint T_PAI_PK; alter 

 table T_PAI drop constraint T_PAI_PK

 *

 ERRO na linha 1:

 ORA-02273: esta chave exclusiva/primaria e referenciada por algumas 

 chaves externas

 

 = vou então listar as FKs, já gerando os comandos de drop que eu só 

 copio  colo :

 

 SYSTEM@O10GR2::SQLselect 'alter table ' || table_name || ' drop 

 constraint ' || constraint_name || ';' from dba_constraints where 

 owner='SYSTEM' and r_constraint_name='T_PAI_PK';

 

 'ALTERTABLE'||TABLE_NAME||'DROPCONSTRAINT'||CONSTRAINT_NAME||';'

 --

 alter table T_FILHA1 drop constraint T_FILHA1_FK; alter table T_FILHA2 

 drop constraint T_FILHA2_FK;

 

 = o copy/paste em ação :

 

 SYSTEM@O10GR2::SQLalter table T_FILHA1 drop constraint T_FILHA1_FK;

 

 Tabela alterada.

 

 

RES: [oracle_br] Re: AJUDA COM MERGE

2012-01-13 Por tôpico Giovanni Ferreira de Sousa
Bom dia,
 
Chiappa e Ricardo,
 
É o seguinte, os dados de origem estão em um arquivo XML, e o programador não 
tem privilégios para criar as tabelas, inserir os dados nessas tabelas, para 
depois executar o MERGE. Sendo assim, gostaria de saber qual a melhor forma 
carregar os dados do XML para a tabela de destino, tendo em vista que essa 
tabela já possui dados.
 
Atenciosamente,
 
Giovanni.
 



De: oracle_br@yahoogrupos.com.br em nome de José Laurindo
Enviada: qui 12/1/2012 15:43
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: AJUDA COM MERGE


  

É isso mesmo... O Colega vai explicar melhor, mas pelo jeito ele quer fazer um 
UPSERT (UPdate se o dado existe, inSERT se o dado não existe), e realmente pra 
se fazer isso via MERGE a origem e o destino tem que ser diferentes
O que ele poderia fazer talvez é ** copiar ** os dados que servirão de origem 
(até pra uma GTT, talvez) e aí sim fazer o MERGE, aí especificando a GTT como 
fonte de dados para o MERGE e a tabela real tanto pra MATCH quanto pra 
NON-MATCH ...

[]s

Chiappa

--- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br , 
Ricardo Tajiri rhtajiri@... escreveu

 Oi Giovanni,
 
 A idéia do MERGE é que você tem dados que estão em uma origem e quer
 modificar um destino de acordo com estes dados.
 
 Se o dado não existe na origem então você não vai conseguir inserir na mão
 usando o MERGE... Agora, pra poder opinar melhor
 em alguma outra solução é necessário que você nos dê mais informações sobre
 o seu problema de verdade...
 
 
 Ricardo Hideyuki Tajiri
 LaRCom - FEEC - UNICAMP
 
 
 Em 11 de janeiro de 2012 16:44, Giovanni Ferreira de Sousa 
 giovanni.sousa@... escreveu:
 
  **
 
 
  Ricardo,
 
  É verdade, não estava atento a isso...vacilei ...
 
 
  Para este caso, se não existir, quero especificar (inserir) o dado na mão
  mesmo.
  Tem como fazer isso, utilizando o merge. O que você sugere?
 
  Desde já agradeço a sua colaboração...
 
  Atenciosamente
 
  Giovanni.
 
 
  
 
  De: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
  em nome de Ricardo Tajiri
  Enviada: qua 11/1/2012 15:28
  Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br 
  Assunto: Re: [oracle_br] AJUDA COM MERGE
 
 
  Oi Giovanni,
 
  A sua compreensão do comando MERGE que está incompleta...
 
  Como você mesmo disse, ele não existe na tabela
  dbfunasasiasiprod.tb_carga_siasi_new.
 
  O MERGE executa as modificações na tabela em que está sendo feito o MERGE
  de acordo com
  dados provenientes de outro local. A idéia do WHEN NOT MATCHED seria a
  seguinte:
 
  Se não existe na tabela com o álias carga do seu comando e *EXISTE* na
 
  tabela (subconsulta) com álias x
  ele executa o INSERT. Porém, como você está usando a mesma tabela, tanto
  para carga quanto para x
  o dado não vai retornar em x e tb não executar o insert.
 
  Ricardo Hideyuki Tajiri
  LaRCom - FEEC - UNICAMP
 
  Em 11 de janeiro de 2012 16:04, Giovanni Ferreira de Sousa 
  giovanni.sousa@... escreveu:
 
   **
 
  
  
   Prezados,
  
   Boa Tarde,
  
   Estou preparando o seguinte comando:
  
   merge into dbfunasasiasiprod.tb_carga_siasi_new carga
   using
   (
   select * from dbfunasasiasiprod.tb_carga_siasi_new
   where dbfunasasiasiprod.tb_carga_siasi_new.comando = 'teste7'
   )x
   on(carga.comando = x.comando)
   WHEN MATCHED THEN
   UPDATE SET
   carga.lote = 'atualizou'
   WHEN NOT MATCHED THEN
   INSERT (carga.comando,carga.lote,carga.dt_atualizacao)
   values(x.COMANDO,'inseriu',sysdate).
  
   Quando o dado existe o update é feito corretamente.
  
   Neste caso, o registro 'teste7' não existe na tabela, então, deveria ser
   feito o insert. O que há de errado? Gostaria que me ajudassem.
  
   Atenciosamente
  
   Giovanni
  
   [As partes desta mensagem que não continham texto foram removidas]
  
  
  
 
  [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
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 
  
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]







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



RES: [oracle_br] Re: AJUDA COM MERGE

2012-01-13 Por tôpico José Laurindo
  Então : primeiro de tudo, é normal o programador não ter privilégios de 
criação de tabela : necessariamente num ambiente controlado e gerenciado, ** 
nunca ** é o programador que cria tabelas, e sim o DBA ou no mínimo um DA, ou 
quando muito um Analista-chefe  Até por isso , o que sugerimos foi o 
programador *** usar *** apenas a nova tabela no programa dele, que (claro) 
necessariamente Teria que ser criada antes por alguém autorizado e dado o 
acesso para o programador poder usar...

 Porém, esse outro ponto que vc só agora nos dá muda ABSOLUTAMENTE tudo : cfrme 
nós dissemos, por definição o comando MERGE serve para ler uma ** TABELA ** 
origem, pesquisar a chave lida numa TABELA destino e se houve match fazer um 
UPDATE na tabela destino, e se não houve match fazer um INSERT na tabela 
destino - agora que vc fala que a origem dos dados NÂO é uma tabela mas sim um 
arquivo (XML, mas um ARQUIVO)  isso MUDA a história, completamente, nos 
AFASTAMOS do paradigma do MERGE ... 

  Em vista desse novo cenário, uma possibilidade pra se continuar usando o 
MERGE (isso SE o arquivo XML está criado no mesmo servidor Oracle aonde o RDBMS 
roda, E o usuário de SO que roda o RDBMS tem privilégio) é ** transformar ** 
(logicamente falando) o arquivo-texto numa 'tabela externa' : isso é um objeto 
que ao se fazer SELECT * dele , o banco busca os dados no arquivo-texto 
externo... Isso não cria nenhum segmento dentro do banco de dados, não exige de 
forma nenhuma que os dados do arquivo sejam importados pro database, o database 
é que vai abrir e ler o arquivo texto externo, como se estivesse fazendo FETCH 
de uma tabela via cursor, a transformação é LÓGICA, apenas... Isso 
funcionando, aí vc simplesmente usaria no MERGE como fonte de dados um SELECT * 
FROM tabelaexternaqueapontaproarquivoXML , e como destino no MATCH/NOMATCH a 
tabela real destino mesmo aonde os dados devem ser inseridos/updateados... 
  Eu não tenho aqui comigo um exemplo, mas a criação da tabela-externa seria + 
ou - algo tipo o mostrado em 
http://www.packtpub.com/article/external-tables-oracle-10g-11g-database-part2 
 

  Caso vc tenha problemas com o fato do arquivo ser XML (por exemplo, os dados 
não estão num formato consolidado, ou vc está usando um database que não te dá 
direito às as funções XML todas, como o cacareco do XE, por exemplo) , uma 
opção pra vc continuar usando essa técnica de acessar o arquivo como tabela é 
transformar o xml em arquivo-texto flat via algum utilitário , como 
http://xmlstar.sourceforge.net/overview.php por exemplo.

 Numa última opção, se vc realmente não puder transformar o arquivo numa tabela 
com o recurso do external table, aí vc Fatalmente não conseguirá usar o MERGE, 
aí sim seria o caso do programador fazer um loop/cursor, lendo cada linha do 
arquivo e fazendo a lógica de match/nomatch manualmente...

 []s

  Chiappa


--- Em oracle_br@yahoogrupos.com.br, Giovanni Ferreira de Sousa 
giovanni.sousa@... escreveu

 Bom dia,
  
 Chiappa e Ricardo,
  
 É o seguinte, os dados de origem estão em um arquivo XML, e o programador não 
 tem privilégios para criar as tabelas, inserir os dados nessas tabelas, para 
 depois executar o MERGE. Sendo assim, gostaria de saber qual a melhor forma 
 carregar os dados do XML para a tabela de destino, tendo em vista que essa 
 tabela já possui dados.
  
 Atenciosamente,
  
 Giovanni.
  
 
 
 
 De: oracle_br@yahoogrupos.com.br em nome de José Laurindo
 Enviada: qui 12/1/2012 15:43
 Para: oracle_br@yahoogrupos.com.br
 Assunto: [oracle_br] Re: AJUDA COM MERGE
 
 
   
 
 É isso mesmo... O Colega vai explicar melhor, mas pelo jeito ele quer fazer 
 um UPSERT (UPdate se o dado existe, inSERT se o dado não existe), e realmente 
 pra se fazer isso via MERGE a origem e o destino tem que ser diferentes
 O que ele poderia fazer talvez é ** copiar ** os dados que servirão de origem 
 (até pra uma GTT, talvez) e aí sim fazer o MERGE, aí especificando a GTT como 
 fonte de dados para o MERGE e a tabela real tanto pra MATCH quanto pra 
 NON-MATCH ...
 
 []s
 
 Chiappa
 
 --- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br , 
 Ricardo Tajiri rhtajiri@ escreveu
 
  Oi Giovanni,
  
  A idéia do MERGE é que você tem dados que estão em uma origem e quer
  modificar um destino de acordo com estes dados.
  
  Se o dado não existe na origem então você não vai conseguir inserir na mão
  usando o MERGE... Agora, pra poder opinar melhor
  em alguma outra solução é necessário que você nos dê mais informações sobre
  o seu problema de verdade...
  
  
  Ricardo Hideyuki Tajiri
  LaRCom - FEEC - UNICAMP
  
  
  Em 11 de janeiro de 2012 16:44, Giovanni Ferreira de Sousa 
  giovanni.sousa@ escreveu:
  
   **
  
  
   Ricardo,
  
   É verdade, não estava atento a isso...vacilei ...
  
  
   Para este caso, se não existir, quero especificar (inserir) o dado na mão
   mesmo.
   Tem como fazer isso, utilizando o merge. O que você 

RES: [oracle_br] Re: Ajuda em Query

2011-12-21 Por tôpico Marlon Pasquali - TI - Peccin S.A.
Eu nestes casos costumo usar bastante o Decode. Não sei se aplica ao teu
caso.

 

Ficaria assim

 

select

decode(to_char(trx_date,'MM'),'01',count(*),0) mes1, 

decode(to_char(trx_date,'MM'),'02',count(*),0) mes2, 

decode(to_char(trx_date,'MM'),'03',count(*),0) mes3, 

decode(to_char(trx_date,'MM'),'04',count(*),0) mes4, 

decode(to_char(trx_date,'MM'),'05',count(*),0) mes5, 

decode(to_char(trx_date,'MM'),'06',count(*),0) mes6, 

decode(to_char(trx_date,'MM'),'07',count(*),0) mes7, 

decode(to_char(trx_date,'MM'),'08',count(*),0) mes8, 

decode(to_char(trx_date,'MM'),'09',count(*),0) mes9, 

decode(to_char(trx_date,'MM'),'10',count(*),0) mes10,

decode(to_char(trx_date,'MM'),'11',count(*),0) mes11, 

decode(to_char(trx_date,'MM'),'12',count(*),0) mes12

 

testa ai…

 

MARLON ALEXANDRE PASQUALI 
T.I. - ANALISTA DE DESENVOLVIMENTO 

Peccin S.A.
[ Rua Dr. Sidney Guerra nº 1700 - CEP: 99700-000 - Erechim - Rio Grande do
Sul – Brasil ]
:: http://www.peccin.com.br/ www.peccin.com.br
::marlon.pasqu...@peccin.com.br:: (54) 3520.9727
 



  _  

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
nome de Paulo Petruzalek
Enviada em: quarta-feira, 21 de dezembro de 2011 13:36
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Re: Ajuda em Query

 

  

Ou ao invés de criar uma tabela ele poderia fazer uma view inline com a
query:

select to_date('01/' || to_char(rownum) || '/2011', 'dd/mm/') data
from dual connect by level = 12;

Paulo

--- Em ter, 20/12/11, José Laurindo jlchia...@yahoo.com.br
mailto:jlchiappa%40yahoo.com.br  escreveu:

De: José Laurindo jlchia...@yahoo.com.br mailto:jlchiappa%40yahoo.com.br

Assunto: [oracle_br] Re: Ajuda em Query
Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br 
Data: Terça-feira, 20 de Dezembro de 2011, 17:35

Élcio, como sempre o nosso amigo yahoo!groups fez um Péssimo serviço
des-formatando a sua query, mas entendi o básico, creio : negócio é o
seguinte, uma query normalmente traz os valores que existem, Não tem Como vc
fazer a Query inventar valores, okdodoc ?
Então vc tem duas possibilidades aí :

1. a mais fácil, imho : crie uma tabela, digamos, TAB_MESES com uma coluna
C_DATA e contendo 12 registros, com os valores de 01/01/2011 até 01/12/2011,
e faça um OUTER JOIN dessa nova tabela com a sua tabela CRD.CLIENTE : no
outer join a informação presente numa tabela mas não presente na outra é
lida naturalmente, apenas vindo com NULL na parte faltante, aí com NVL vc
transforma o null em zero

ou

  2. usa funções analíticas : com elas vc pode processar a linha
correntemente sendo lida E a linha anteriormente lida na query, aí seria só
um caso de comparar o mês corrente com o Mês anteriormente lido, se tiver
GAP vc introduz um zero É um tantinho mais trabalhoso e complexo de
entender mas não exigiria a criação de nada extra no seu banco
  
  Tenta aí e se não conseguir, manda o CREATE TABLE e uns INSERTs (** E **
especifica mais detalhadamente a sua versão de banco, só 10g é insuficiente,
a gente tem que saber a Edição e o release com 4 dígitos), que a gente pode
olhar e palpitar mais...
   
  []s
  
 Chiappa
  

--- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
, Elcio Francisco elciofrancisco@... escreveu

 Pessoal tenho uma query aqui para montar uma estatistica anual. Alguns
anos as vendas começa em Julho e tem mes que não possui vendas. Porem a
estaticas é para o ano todo.Para os mes de janeiro a junho eu queria colocar
0 (zero) isso para a estatistica não ficar furada. Como colocar isso em uma
query.
 
 Queryselect count(*) Qtde_ant
--,to_char(data_cadastro,'Month') Mes_Ano_ant
,to_date(to_char(data_cadastro,'Month'),'mm') Mes_Ano_ant
,to_char(data_cadastro,'mm') mes   from crd.cliente  where
to_char(data_cadastro,'') :2011  group by
to_date(to_char(data_cadastro,'Month'),'mm'),to_char(data_cadastro,'mm')
order by to_date(to_char(data_cadastro,'Month'),'mm');
Esta ficando conforme modelo abaixoQTDE_ANTMES_ANO_ANTMES101
1/7/201107132 1/8/201108103 1/9/2011
09129 1/10/201110195 1/11/201111267
1/12/201112
 Eu preciso que fique assim
 QTDE_ANTMES_ANO_ANTMES0 1/1/2011010
1/2/2011020 1/3/2011030 1/4/2011040
1/5/2011050 1/6/201106101 1/7/201107132
1/8/201108103 1/9/201109129 1/10/2011
10195 1/11/201111267 1/12/201112
 Alguem podera me ajudar?
 Versão do Banco : 10G
 Muito Obrigado
 Elcio
 Analista de Sistemas 
 
 P Antes de imprimir pense em sua responsabilidade com o MEIO AMBIENTE
  Adote os 3Rs na sua vida: Reduza, Reutilize, Recicle!
 
 [As partes desta mensagem que não continham texto foram removidas]




--

RES: [oracle_br] Re: Ajuda Expdp

2010-04-20 Por tôpico Welvis Douglas
Chiappa, 
 
Minha idéia seria gerar dois export, um com metadata apenas, e o outro com
os dados.
 
Eu importaria o medata data, desabilitaria as constraints de referecia.
Depois disso eu iria fazer o import com os dados.
 
Depois disso posso fazer um novalidate nas constraints e rodar um rebuild
nos indices. Só que o lixo do banco não é EE. sendo assim não consigo rodar
nada com parallel apenas com nologging.
 
Agora, isso funcionaria?
 
Att,
 
Welvis Douglas da Silva Moretto
DBA - Oracle Certified (1ZO-042)
Fone:  (41) 9997-6297  
E-mail:welvis_doug...@hotmail.com, wel...@stcruz.com.br
Messenger: welvis_doug...@hotmail.com
 
Mestre em Engenharia de Produção e Sistemas - PUC/PR;
Especializando em Banco de Dados - UNOPAR;
Especialista Engenharia de Software - UNOPAR;
Tecnólogo em Processamento de Dados - FACCAR.
 
 

  _  

De: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] Em
nome de José Laurindo
Enviada em: terça-feira, 20 de abril de 2010 17:01
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Ajuda Expdp


  

Braga, pelo que eu entendi o Welvis queria exportar sem constraints pra
depois importar sem constraints, por dois motivos provavelmente :

a) ele não pretende seguir a ordem na importação, assim quando os dados das
tabs em questão estão sendo importados as tabelas-pai menores não estão
presentes ainda, daria erro de FK

e/ou

b) já que as tabelas são grandes, importar sem constraints (ou com
constraints desabilitadas) poupa o tempo que o bd leva pra fazer check das
constraints quando vc importa (o fato dos dados virem de outro banco , onde
se presume que estejam íntegros, permite esse approach)

então o procedimento seria em tese fazer um export SEM constraints (só
dados), outro SEM dados mas com as consraints, importar o import só dos
dados e só depois que as tabs PK e tudo mais tiverem ok, importar o import
com as constraints PORÉM, dou outro conselho pro Welvis : colega, pra
variar vc não diz mas SE há comunicação de rede entre os dois servidores
(normalmente há entre prod e desenv) , e as tabelas são grandes, COM QUASE
CERTEZA posso dizer que esse procedimento que descrevi é não-ótimo : se vc
extrair os DDLs (com expdp, com DBMS_METADATA, com expor full sem dados lido
pelo freeware DDL Wizard, por software que faça isso como o Oracle SQL
developer, não importa), fazer os CREATE TABLEs com cláusula NOLOGGING e
PARALLEL e mandar um INSERT /*+ APPEND /* into tabelanobancodestino AS
(select * from tabelao...@dblinkapontabndopraorigem) . com SQL Paralelo
ativado e modo NOLOG, e sem índices/constraints, isso deve ser Extremamente
mais performático do que import dos dados... feito isso aí sim vc implanta
as constraints adicionando a cláusula NOVALIDATE pra que o banco não cheque
os dados trazidos do bd origem...

[]s

Chiappa

--- Em oracle...@yahoogrup mailto:oracle_br%40yahoogrupos.com.br
os.com.br, Marcos Braga braga.mar...@... escreveu

 Welvis,
 
 Efetuo import constantemente e não desabilito constraints. Não sei se esse
é
 o caso.
 
 Para efetuar um export somente da estrutura utiliza a opção CONTENT.
 
 Ex:
 
 $ expdp usuario/senha directory=diretorio_do_db content=metadata_only
 schemas=schema_name include=tables:\in\(\'TABELA1\',\'TABELA2\'\)\
 
 Na minha página tem alguns exemplos bem toscos, você pode consultar
também:
 http://sites.
http://sites.google.com/site/universodobraga/oracle/datapump
google.com/site/universodobraga/oracle/datapump
 
 creio que é isso
 
 []s
 Braga
 
 Em 20 de abril de 2010 13:36, Welvis Douglas wel...@...escreveu:
 
 
 
  Olá pessoal, estou precisando de uma ajudinha.
 
  Tenho que voltar uma base de produção para um ambiante em homolog. O
  complicado que tenho umas 5 tabelas que são bem grandes, porem estas
  tabelas
  são de LOG'S.
 
  Queria fazer um export apenas das extruturas, e logo após o import da
  extrutura fazer um import apenas dos dados. Andei pesquisando, vi que
  preciso desabilitar todas as constraints do banco para que não de erro
no
  import.
 
  É este o caminho, alguem tem alguma sugestão de como fazer o expdp
normal =
  (mata_data/data) e excluir os dados destas 5 tabelas?
 
  Att,
 
  Welvis Douglas da Silva Moretto
  DBA - Oracle Certified (1ZO-042)
  Fone: (41) 9997-6297
  E-mail: welvis_doug...@... welvis_douglas%40hotmail.com,
  wel...@... welvis%40stcruz.com.br
  Messenger: welvis_doug...@... welvis_douglas%40hotmail.com
 
  Mestre em Engenharia de Produção e Sistemas - PUC/PR;
  Especializando em Banco de Dados - UNOPAR;
  Especialista Engenharia de Software - UNOPAR;
  Tecnólogo em Processamento de Dados - FACCAR.
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]







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



RES: [oracle_br] Re: Ajuda Expdp

2010-04-20 Por tôpico Welvis Douglas
Teria boa performance?
 
Tem algum parametro de posso alterar para aumentar a performance do
impdp
 
Obrigado pela ajuda.
 
Att,
 
Welvis Douglas da Silva Moretto
DBA - Oracle Certified (1ZO-042)
Fone:  (41) 9997-6297  
E-mail:welvis_doug...@hotmail.com, wel...@stcruz.com.br
Messenger: welvis_doug...@hotmail.com
 
Mestre em Engenharia de Produção e Sistemas - PUC/PR;
Especializando em Banco de Dados - UNOPAR;
Especialista Engenharia de Software - UNOPAR;
Tecnólogo em Processamento de Dados - FACCAR.

  _  

De: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] Em
nome de Welvis Douglas
Enviada em: terça-feira, 20 de abril de 2010 17:35
Para: oracle_br@yahoogrupos.com.br
Assunto: RES: [oracle_br] Re: Ajuda Expdp


  

Chiappa, 

Minha idéia seria gerar dois export, um com metadata apenas, e o outro com
os dados.

Eu importaria o medata data, desabilitaria as constraints de referecia.
Depois disso eu iria fazer o import com os dados.

Depois disso posso fazer um novalidate nas constraints e rodar um rebuild
nos indices. Só que o lixo do banco não é EE. sendo assim não consigo rodar
nada com parallel apenas com nologging.

Agora, isso funcionaria?

Att,

Welvis Douglas da Silva Moretto
DBA - Oracle Certified (1ZO-042)
Fone: (41) 9997-6297 
E-mail: welvis_douglas@ mailto:welvis_douglas%40hotmail.com hotmail.com,
wel...@stcruz. mailto:welvis%40stcruz.com.br com.br
Messenger: welvis_douglas@ mailto:welvis_douglas%40hotmail.com hotmail.com

Mestre em Engenharia de Produção e Sistemas - PUC/PR;
Especializando em Banco de Dados - UNOPAR;
Especialista Engenharia de Software - UNOPAR;
Tecnólogo em Processamento de Dados - FACCAR.



_ 

De: oracle...@yahoogrup mailto:oracle_br%40yahoogrupos.com.br os.com.br
[mailto:oracle...@yahoogrup mailto:oracle_br%40yahoogrupos.com.br
os.com.br] Em
nome de José Laurindo
Enviada em: terça-feira, 20 de abril de 2010 17:01
Para: oracle...@yahoogrup mailto:oracle_br%40yahoogrupos.com.br os.com.br
Assunto: [oracle_br] Re: Ajuda Expdp

Braga, pelo que eu entendi o Welvis queria exportar sem constraints pra
depois importar sem constraints, por dois motivos provavelmente :

a) ele não pretende seguir a ordem na importação, assim quando os dados das
tabs em questão estão sendo importados as tabelas-pai menores não estão
presentes ainda, daria erro de FK

e/ou

b) já que as tabelas são grandes, importar sem constraints (ou com
constraints desabilitadas) poupa o tempo que o bd leva pra fazer check das
constraints quando vc importa (o fato dos dados virem de outro banco , onde
se presume que estejam íntegros, permite esse approach)

então o procedimento seria em tese fazer um export SEM constraints (só
dados), outro SEM dados mas com as consraints, importar o import só dos
dados e só depois que as tabs PK e tudo mais tiverem ok, importar o import
com as constraints PORÉM, dou outro conselho pro Welvis : colega, pra
variar vc não diz mas SE há comunicação de rede entre os dois servidores
(normalmente há entre prod e desenv) , e as tabelas são grandes, COM QUASE
CERTEZA posso dizer que esse procedimento que descrevi é não-ótimo : se vc
extrair os DDLs (com expdp, com DBMS_METADATA, com expor full sem dados lido
pelo freeware DDL Wizard, por software que faça isso como o Oracle SQL
developer, não importa), fazer os CREATE TABLEs com cláusula NOLOGGING e
PARALLEL e mandar um INSERT /*+ APPEND /* into tabelanobancodestino AS
(select * from tabelao...@dblinkapontabndopraorigem) . com SQL Paralelo
ativado e modo NOLOG, e sem índices/constraints, isso deve ser Extremamente
mais performático do que import dos dados... feito isso aí sim vc implanta
as constraints adicionando a cláusula NOVALIDATE pra que o banco não cheque
os dados trazidos do bd origem...

[]s

Chiappa

--- Em oracle...@yahoogrup mailto:oracle_br%40yahoogrupos.com.br
os.com.br, Marcos Braga braga.mar...@... escreveu

 Welvis,
 
 Efetuo import constantemente e não desabilito constraints. Não sei se esse
é
 o caso.
 
 Para efetuar um export somente da estrutura utiliza a opção CONTENT.
 
 Ex:
 
 $ expdp usuario/senha directory=diretorio_do_db content=metadata_only
 schemas=schema_name include=tables:\in\(\'TABELA1\',\'TABELA2\'\)\
 
 Na minha página tem alguns exemplos bem toscos, você pode consultar
também:
 http://sites.
http://sites.
http://sites.google.com/site/universodobraga/oracle/datapump
google.com/site/universodobraga/oracle/datapump
google.com/site/universodobraga/oracle/datapump
 
 creio que é isso
 
 []s
 Braga
 
 Em 20 de abril de 2010 13:36, Welvis Douglas wel...@...escreveu:
 
 
 
  Olá pessoal, estou precisando de uma ajudinha.
 
  Tenho que voltar uma base de produção para um ambiante em homolog. O
  complicado que tenho umas 5 tabelas que são bem grandes, porem estas
  tabelas
  são de LOG'S.
 
  Queria fazer um export apenas das extruturas, e logo após o import da
  extrutura fazer um import apenas dos dados. Andei pesquisando, vi que
  preciso desabilitar todas as constraints

RES: [oracle_br] Re: Ajuda Expdp

2010-04-20 Por tôpico José Laurindo
ixe,realmente iirc Standard implica em sem paralelismo... Bem, o procedimento 
que vc cita é uma variação do que eu disse em primeiro lugar na nota (ao invés 
de criar os objs vazios sem constraints vc os cria normal e desabilita as 
constraints, ok) deve funcionar normal, sim 

  O ponto maior que pode pegar em termos de performance no impdp e favorecer o 
INSERT direto é que é garantido que o INSERT /*+ APPEND */ numa tabela 
NOLOGGING e sem índices/constraints vai usar direct mode e gerar o mínimo de 
logging, enquanto pro impdp já vi uns bugs impedindo isso aí o import acabava 
sendo logado e sem usar direct, teste aí Bem Direitinho se no seu caso dá 
diferença de perf ou não...

 []s

   Chiappa

--- Em oracle_br@yahoogrupos.com.br, Welvis Douglas wel...@... escreveu

 Chiappa, 
  
 Minha idéia seria gerar dois export, um com metadata apenas, e o outro com
 os dados.
  
 Eu importaria o medata data, desabilitaria as constraints de referecia.
 Depois disso eu iria fazer o import com os dados.
  
 Depois disso posso fazer um novalidate nas constraints e rodar um rebuild
 nos indices. Só que o lixo do banco não é EE. sendo assim não consigo rodar
 nada com parallel apenas com nologging.
  
 Agora, isso funcionaria?
  
 Att,
  
 Welvis Douglas da Silva Moretto
 DBA - Oracle Certified (1ZO-042)
 Fone:  (41) 9997-6297  
 E-mail:welvis_doug...@..., wel...@...
 Messenger: welvis_doug...@...
  
 Mestre em Engenharia de Produção e Sistemas - PUC/PR;
 Especializando em Banco de Dados - UNOPAR;
 Especialista Engenharia de Software - UNOPAR;
 Tecnólogo em Processamento de Dados - FACCAR.
  
  
 
   _  
 
 De: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] Em
 nome de José Laurindo
 Enviada em: terça-feira, 20 de abril de 2010 17:01
 Para: oracle_br@yahoogrupos.com.br
 Assunto: [oracle_br] Re: Ajuda Expdp
 
 
   
 
 Braga, pelo que eu entendi o Welvis queria exportar sem constraints pra
 depois importar sem constraints, por dois motivos provavelmente :
 
 a) ele não pretende seguir a ordem na importação, assim quando os dados das
 tabs em questão estão sendo importados as tabelas-pai menores não estão
 presentes ainda, daria erro de FK
 
 e/ou
 
 b) já que as tabelas são grandes, importar sem constraints (ou com
 constraints desabilitadas) poupa o tempo que o bd leva pra fazer check das
 constraints quando vc importa (o fato dos dados virem de outro banco , onde
 se presume que estejam íntegros, permite esse approach)
 
 então o procedimento seria em tese fazer um export SEM constraints (só
 dados), outro SEM dados mas com as consraints, importar o import só dos
 dados e só depois que as tabs PK e tudo mais tiverem ok, importar o import
 com as constraints PORÉM, dou outro conselho pro Welvis : colega, pra
 variar vc não diz mas SE há comunicação de rede entre os dois servidores
 (normalmente há entre prod e desenv) , e as tabelas são grandes, COM QUASE
 CERTEZA posso dizer que esse procedimento que descrevi é não-ótimo : se vc
 extrair os DDLs (com expdp, com DBMS_METADATA, com expor full sem dados lido
 pelo freeware DDL Wizard, por software que faça isso como o Oracle SQL
 developer, não importa), fazer os CREATE TABLEs com cláusula NOLOGGING e
 PARALLEL e mandar um INSERT /*+ APPEND /* into tabelanobancodestino AS
 (select * from tabelao...@dblinkapontabndopraorigem) . com SQL Paralelo
 ativado e modo NOLOG, e sem índices/constraints, isso deve ser Extremamente
 mais performático do que import dos dados... feito isso aí sim vc implanta
 as constraints adicionando a cláusula NOVALIDATE pra que o banco não cheque
 os dados trazidos do bd origem...
 
 []s
 
 Chiappa
 
 --- Em oracle...@yahoogrup mailto:oracle_br%40yahoogrupos.com.br
 os.com.br, Marcos Braga braga.marcos@ escreveu
 
  Welvis,
  
  Efetuo import constantemente e não desabilito constraints. Não sei se esse
 é
  o caso.
  
  Para efetuar um export somente da estrutura utiliza a opção CONTENT.
  
  Ex:
  
  $ expdp usuario/senha directory=diretorio_do_db content=metadata_only
  schemas=schema_name include=tables:\in\(\'TABELA1\',\'TABELA2\'\)\
  
  Na minha página tem alguns exemplos bem toscos, você pode consultar
 também:
  http://sites.
 http://sites.google.com/site/universodobraga/oracle/datapump
 google.com/site/universodobraga/oracle/datapump
  
  creio que é isso
  
  []s
  Braga
  
  Em 20 de abril de 2010 13:36, Welvis Douglas welvis@escreveu:
  
  
  
   Olá pessoal, estou precisando de uma ajudinha.
  
   Tenho que voltar uma base de produção para um ambiante em homolog. O
   complicado que tenho umas 5 tabelas que são bem grandes, porem estas
   tabelas
   são de LOG'S.
  
   Queria fazer um export apenas das extruturas, e logo após o import da
   extrutura fazer um import apenas dos dados. Andei pesquisando, vi que
   preciso desabilitar todas as constraints do banco para que não de erro
 no
   import.
  
   É este o caminho, alguem tem alguma sugestão de como fazer o expdp
 normal =
   

RES: [oracle_br] Re: Ajuda Expdp

2010-04-20 Por tôpico José Laurindo
Normalmente bem setado/ajustado expdp/impdp não costuma ter uma performance 
abismalmente ruim, mas também via de regra o INSERT /*+ APPEND */ a sobrepuja, 
TESTE direitinho aí no seu ambiente : pra ser uma comparação Justa, estude 
antes as notas metalink :

Export/Import DataPump Parameter ACCESS_METHOD - How to Enforce a Method of 
Loading and Unloading Data ? (Doc ID 552424.1)  

Checklist for Slow Performance of Export Data Pump (expdp) and Import DataPump 
(impdp) (Doc ID 453895.1)

My Experience in Moving a 1 Terabyte Database Across Platforms With Minimal 
Downtime (Doc ID 431096.1)

pra ver se vc não está caindo nalgum prob conhecido de performance com o data 
pump... Quanto à parâmetros, o principal é o ACCESS_METHOD (citado na primeira 
nota), e o PARALLEL - este último não sei se num banco Standard será aceito, já 
que nunca tive o desprazer de mexer com isso, toca a testar


[]s

  Chiappa

--- Em oracle_br@yahoogrupos.com.br, Welvis Douglas wel...@... escreveu

 Teria boa performance?
  
 Tem algum parametro de posso alterar para aumentar a performance do
 impdp
  
 Obrigado pela ajuda.
  
 Att,
  
 Welvis Douglas da Silva Moretto
 DBA - Oracle Certified (1ZO-042)
 Fone:  (41) 9997-6297  
 E-mail:welvis_doug...@..., wel...@...
 Messenger: welvis_doug...@...
  
 Mestre em Engenharia de Produção e Sistemas - PUC/PR;
 Especializando em Banco de Dados - UNOPAR;
 Especialista Engenharia de Software - UNOPAR;
 Tecnólogo em Processamento de Dados - FACCAR.
 
   _  
 
 De: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] Em
 nome de Welvis Douglas
 Enviada em: terça-feira, 20 de abril de 2010 17:35
 Para: oracle_br@yahoogrupos.com.br
 Assunto: RES: [oracle_br] Re: Ajuda Expdp
 
 
   
 
 Chiappa, 
 
 Minha idéia seria gerar dois export, um com metadata apenas, e o outro com
 os dados.
 
 Eu importaria o medata data, desabilitaria as constraints de referecia.
 Depois disso eu iria fazer o import com os dados.
 
 Depois disso posso fazer um novalidate nas constraints e rodar um rebuild
 nos indices. Só que o lixo do banco não é EE. sendo assim não consigo rodar
 nada com parallel apenas com nologging.
 
 Agora, isso funcionaria?
 
 Att,
 
 Welvis Douglas da Silva Moretto
 DBA - Oracle Certified (1ZO-042)
 Fone: (41) 9997-6297 
 E-mail: welvis_douglas@ mailto:welvis_douglas%40hotmail.com hotmail.com,
 wel...@stcruz. mailto:welvis%40stcruz.com.br com.br
 Messenger: welvis_douglas@ mailto:welvis_douglas%40hotmail.com hotmail.com
 
 Mestre em Engenharia de Produção e Sistemas - PUC/PR;
 Especializando em Banco de Dados - UNOPAR;
 Especialista Engenharia de Software - UNOPAR;
 Tecnólogo em Processamento de Dados - FACCAR.
 
 
 
 _ 
 
 De: oracle...@yahoogrup mailto:oracle_br%40yahoogrupos.com.br os.com.br
 [mailto:oracle...@yahoogrup mailto:oracle_br%40yahoogrupos.com.br
 os.com.br] Em
 nome de José Laurindo
 Enviada em: terça-feira, 20 de abril de 2010 17:01
 Para: oracle...@yahoogrup mailto:oracle_br%40yahoogrupos.com.br os.com.br
 Assunto: [oracle_br] Re: Ajuda Expdp
 
 Braga, pelo que eu entendi o Welvis queria exportar sem constraints pra
 depois importar sem constraints, por dois motivos provavelmente :
 
 a) ele não pretende seguir a ordem na importação, assim quando os dados das
 tabs em questão estão sendo importados as tabelas-pai menores não estão
 presentes ainda, daria erro de FK
 
 e/ou
 
 b) já que as tabelas são grandes, importar sem constraints (ou com
 constraints desabilitadas) poupa o tempo que o bd leva pra fazer check das
 constraints quando vc importa (o fato dos dados virem de outro banco , onde
 se presume que estejam íntegros, permite esse approach)
 
 então o procedimento seria em tese fazer um export SEM constraints (só
 dados), outro SEM dados mas com as consraints, importar o import só dos
 dados e só depois que as tabs PK e tudo mais tiverem ok, importar o import
 com as constraints PORÉM, dou outro conselho pro Welvis : colega, pra
 variar vc não diz mas SE há comunicação de rede entre os dois servidores
 (normalmente há entre prod e desenv) , e as tabelas são grandes, COM QUASE
 CERTEZA posso dizer que esse procedimento que descrevi é não-ótimo : se vc
 extrair os DDLs (com expdp, com DBMS_METADATA, com expor full sem dados lido
 pelo freeware DDL Wizard, por software que faça isso como o Oracle SQL
 developer, não importa), fazer os CREATE TABLEs com cláusula NOLOGGING e
 PARALLEL e mandar um INSERT /*+ APPEND /* into tabelanobancodestino AS
 (select * from tabelao...@dblinkapontabndopraorigem) . com SQL Paralelo
 ativado e modo NOLOG, e sem índices/constraints, isso deve ser Extremamente
 mais performático do que import dos dados... feito isso aí sim vc implanta
 as constraints adicionando a cláusula NOVALIDATE pra que o banco não cheque
 os dados trazidos do bd origem...
 
 []s
 
 Chiappa
 
 --- Em oracle...@yahoogrup mailto:oracle_br%40yahoogrupos.com.br
 os.com.br, Marcos Braga braga.marcos@ escreveu
 
  Welvis

RES: [oracle_br] Re: Ajuda !! Enterprise Manager Não E xibe Paginas Administrativas

2009-07-30 Por tôpico Dalton Pereira
Comigo já aconteceu esse erro, e durante minhas investigações pude perceber que 
o usuário SYSMAN estava com a conta bloqueada. Veja se esse não é o seu caso.

Atenciosamente,

Dalton Oliveira | Database Administrator - OCP
GLAUCO INFORMÁTICA
* dal...@sd2000.com.brmailto:dal...@sd2000.com.br
*   71 2103-5800
P Antes de imprimir pense em seu compromisso com o Meio Ambiente

De: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] Em nome 
de jlchiappa
Enviada em: terça-feira, 28 de julho de 2009 14:18
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Ajuda !! Enterprise Manager Não Exibe Paginas 
Administrativas



Colega, sugestão : se é justamente o OEM que está sob suspeita, ** NÂO ** 
confie na tal janela que é aberta, VÁ PARA O SERVIDOR e faça as verificações 
necessárias MANUALMENTE, ok ? Seriam elas, SEMPRE lá no servidor, e claro, 
logado com o usuário dono do software Oracle e com as variáveis de ambiente 
setadas :

a) lsnrctl status nomedolistener
b) lsnrctl services nomedolistener
c) sqlplus usuario/senha (** SEM ** @hoststring pois vc terá ORACLE_SID setada 
!!)
d) sqlplus usario/se...@hoststring (aonde a hoststring é a usada na conexão)
e) emctl status dbconsole (SE é que é a versão dbconsole do OEM, pra variar vc 
Não diz...)
e) tentar conectar (via sqlplus, talvez) com o usuário SYSMAN , que é o que o 
oem precisa
f) SE for windows no servidor (o que pra variar vc Não Diz também) confirmar 
que os serviços necessários estão up and running
g) finalmente, confirmar que os arquivos de config todos (ie, targets.xml, 
tnsnames.ora, sqlnet.ora, etc) estão corretos pro seu ambiente

[]s

Chiappa
--- Em oracle_br@yahoogrupos.com.brmailto:oracle_br%40yahoogrupos.com.br, 
amorrimm ammo...@... escreveu

 Pior que o LISTENER esta no ar...nesta unica janela que é aberta, é exibido o 
 status dele, do banco e tudo esta normal..travou mesmo...este é um banco de 
 desenvolvimento..todos estão coinectados e trabalhando normalmente mas, não 
 consigo de forma alguam abrir a janela de adm do OEM...

 --- Em oracle_br@yahoogrupos.com.brmailto:oracle_br%40yahoogrupos.com.br, 
 Alex Rodrigues alrsilva@ escreveu
 
  Você já viu se o TNSLISTSNER está rodando?
  Acontecia isso comigo e eu precisava refazer o tnsnames pelo Oracle
  Assistant.
 
  Vai em serviços e ve se está rodando o serviço de listener.
 
  2009/7/27 amorrimm ammorim@
 
  
  
   colegas,
  
   Uma ajudinha por favor,
  
   Meu OEM travou em uma janela onde ele diz:  O Enterprise Manager não
   consegue estabelecer conexão com a instância do banco de dados...
  
   Tudo qu eé listado esta OK mas não consigo acessar nenhuma pagina
   administrativa..nem digitar senha nem nada...
  
   Alguem sabe como resolver isso ?
  
  
  
 
 
 
  --
  Alex Rodrigues da Silva
  Analista de Sistemas
  11i10 Applications Developer
  alrsilva@
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 




A Informação Confidencial deverá ser utilizada única e exclusivamente no âmbito 
da relação com a Glauco Informática e não poderá ser repassada, reproduzida de 
qualquer outra forma, e nem revelada a terceiros.

La información confidencial se utilizará única y exclusivamente en relación con 
Glauco Informática, y no se puede pasar, reproduce en modo alguno, ni revelada 
a terceros.

The Confidential Information will be used solely and exclusively in relation to 
the Glauco Informatica and not be passed, reproduced in any way, nor disclosed 
to third parties.


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



RES: [oracle_br] Re: Ajuda

2007-11-14 Por tôpico Augusto Cesar R. Costa
Chiappa, só uma correção.
O Oracle 8.1.7 teve patch de correção até 8.1.7.4.
Até mais.


  _  

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de jlchiappa
Enviada em: terça-feira, 13 de novembro de 2007 18:49
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Ajuda



Colega, é tal como eu falei, se vc ** REALMENTE ** tem tudo aí nesse
HD, e os arqs estiverem legíveis, não vai ter o que, vai ser facílimo
e garantido vc instalar os binários e abrir esse banco A única
coisa que eu tinha dito e repito, é que vc preferencialmente TEM QUE
TER os binários na versão rigorosamente exata que criou o banco, ou no
máximo com patchset superior : assim, normalmente no CD de instalação
vem release 1.0, os patches são adicionados `a parte, muito
provavelmente esse CD que vc conseguiu deve contem o bd 8.1.7.0, se o
banco foi criado por binários 8.1.7.3, vc após a instalação com o CD
ainda terá o patch a aplicar. Já que a compatibilidade é com o
passado, binários 8.1.7.3 conseguem ler e abrir na boa um banco criado
com 8.1.7.0 (digamos), o que eu recomendaria então é que vc já botasse
patch 8.1.7.3(o último que saiu pro banco 8.1.7).
Quanto aos erros sim, não é difícil vc ver coisas do tipo (ie, falta
de backup, de documentação de versão instalada e patches,
desconhecimento total na hora de se gerar um backup, etc) , até em
empresas de porte, sim É algo infelizmente quase rotineiro no
mercado...

[]s

Chiappa

--- Em [EMAIL PROTECTED] mailto:oracle_br%40yahoogrupos.com.br
os.com.br, Eduardo Nunes De Souza Seixas
[EMAIL PROTECTED] escreveu

 chiapa, fico muito agredecido por seu tempo. realmente os datafiles
estão aqui, os control e tudo mais. existem erros bastante acentuados,
muito graves, pois este hd passou pelas mãos de técnicos que chegaram
a dizer que o problema era de disco com defeito. Realmente será uma
tarefa árdua e longa, pois o banco é muito grande. 40 GB. 
 estou fazendo backus desse hd antes de começar o trabalho. o detalhe
é que a empresa proprietária desse hd é referência no ramo de
distribuidoras de medicamentos em goiás. é coisa séria mesmo. pra vc
ter uma idéia, são 7 anos de vida dentro desse hd. 
 obrigado pelas dicas, e, felizmente, eu consegui o cd oracle 8.1.7
com a propria empresa.
 
 
 Obrigado
 - Original Message - 
 From: jlchiappa 
 To: [EMAIL PROTECTED] mailto:oracle_br%40yahoogrupos.com.br os.com.br 
 Sent: Monday, November 12, 2007 8:28 PM
 Subject: [oracle_br] Re: Ajuda
 
 
 Eduardo, ** desconheço ** versão 9.0.2, assumirei que na verdade é
 versão 9.2.0, mas de qquer maneira, observa-se que : 
 
 a) um banco Oracle é composto (no mínimo) por datafiles + controlfiles
 + initfiles + redo log files a cada versão, esse hd tem  TODOS
  esses arqs ? SE não, é ** lixo informata ** o que vc tem em mãos,
 tal como qquer latão de lixo EM TESE vc pode mergulhar nele e ver o
 que dá pra salvar, mas não é fácil nem rápido nem limpo...
 
 b) os arqs de um banco Oracle são CONSTANTEMENTE lidos e gravados em
 background, mesmo quando não há NENHUM usuário ativo : vc tem CERTEZA
 que os arqs desse hd foram copiados com o banco baixado, OU se não se
 banco em modo archive os archived logs estão junto ??? Cópia de arqs
 de um banco NOARCHIVE ativo SÓ PODE resultar em lixo informata, de
novo...
 
 c) a cada novo patch, o formato dos arquivos do banco *** PODE SIM ***
 mudar, então em princípio vc TEM QUE abrir um banco com a MESMA versão
 ** EXATA ** de binário que criou os arqs todos... Da mesma forma, a
 EDIÇÃO conta também - mesmo numa dada versão, em tese os arqs de um
 banco Enterprise podem ser diferentes de um banco de mesma versão mas
 Standard...
 Assim, é quase 100% garantido que vc NÃO poderá abrir arqs versão 8i
 com binários 9i, PONTO. A maneira GARANTIDA e RECOMENDADA de vc
 abrir um banco Oracle , DESDE QUE todos os reqs acima estejam OK é,
 numa máquina de MESMO SISTEMA OPERACIONAL em que ele foi criado, tendo
 acessíveis TODOS os arqs necessários, vc ter instalado a MESMA VERSÃO
 EXATA de binários que criou o banco, é isso : em vc tendo Contrato de
 Suporte prum software Oracle qquer, basta vc abrir um chamado no
 Suporte da Oracle que eles te enviam CDs com versão de qquer banco pra
 qquer SO que já existiu, sendo Oracle = 7.3.x.
 
 O que vc PODE TENTAR, se não puder por qquer motivo obter os binários
 8i, E SE o banco está fechado e íntegro (ie, todos os reqs acima foram
 atendidos) , é ter os binários 9i instalados e tentar uma MIGRAÇÃO
 desse banco 8i, o manual Oracle9i Database Migration
 Release 2 (9.2) cap. 3 - Upgrading a Database to the New Oracle9i
 Release mostra os detalhes.
 
 []s
 
 Chiappa
 --- Em [EMAIL PROTECTED] mailto:oracle_br%40yahoogrupos.com.br
os.com.br, Eduardo Nunes De Souza Seixas
 eduardoseixas2007@ escreveu
 
  Caros
  
  Tenho um hd com o banco oracle 8.1.7 (linux), e preciso recuperar
 esse banco
  e depois fazer um exm (gerar dm).
  Mas a questão é que não tenho o cd oracle 8.1.7. 
  Eu tenho o 9.0.2
  

RES: [oracle_br] Re: Ajuda - Oratab e Emtab

2007-02-16 Por tôpico Clayton Rocha
Apenas complementando, oratab é como se fosse um arquivo de “controle” para
o serviço dbora geralmente criado no Linux/Unix  para definir quais as bases
devem ser iniciadas automaticamente ao carregar o sistema operacional.

 

Como é utilizado apenas em Linux e Unix com certeza não é causa do seu
problema por utilizar Win 2003.

 

Quanto o emtab eu realmente não conheço sua funcionalidade.

 

[]’s

 

Clayton

 

 

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de jlchiappa
Enviada em: quinta-feira, 15 de fevereiro de 2007 14:13
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Ajuda - Oratab e Emtab

 

Seguinte : oratab sei que é um arquivo-texto opcional, com os SIDs 
das instâncias que vc tem na máquina, que é usado principalmente SE 
vc sobe e pára o banco pelos scripts fornecidos pela Oracle (como 
dbastart / dbshut) Oracle. Como é opcional, imagino que o Agent NÃO 
esteja falhando por isso... 
Já quanto ao emtab, não o conheço, mas sei que COM CERTEZA não é 
algo obrigatório ao banco, já que não o tenho nas minhas máquinas - 
provavelmente deve ser parte do OEM e/ou do Agent em si, já que esses 
dois caras eu não uso. Numa googlada, em 
http://www.dbforums.com/showthread.php?t=1294355 um dos threaders 
afirma que esse erros de could not open emtab e similares (imagino 
que deve ser o seu também) são um WARNING apenas, então TAMBÉM não 
deve ser esse o seu problema.
Sugestão, goto manual Intelligent Agent User's Guide, eu vi que 
ele tem lá entradas para troubleshoting, para configuração, pré-reqs, 
talvez ele te ajude mais.

[]s

Chiappa

--- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br
, Fabio Barbosa Ribeiro Gomes 
[EMAIL PROTECTED] escreveu

 Alguém poderia me ajudar ?
 
 Os arquivos oratab e emtab servem para que?
 Qual a importância deles?
 Onde devem ficar?...Não encontrei-os nos meus bancos!!!
 Os bancos (9.2.0.6 Win 2003 Server) estão no ar e funcionando, mas 
estou recebendo msgs de erro relacionadas ao agente desta máquina!!!
 
 DBSNMP for 32-bit Windows: release 9.2.0.6.0 - Production on 28-DEC-
06 09:32:08
 Discovering services on B01 configured on host addresses 
{B01.xxx.xxx.xx.xxx.xxr yy.y.yy.yyy}
 Could not determine location of emtab.
 
 
 Desde já agradeço a ajuda de vocês.
 
 
 [As partes desta mensagem que não continham texto foram removidas]


 



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



RES: [oracle_br] Re: Ajuda URGENTE.

2006-12-28 Por tôpico Smartn - Milton Bastos Henriquis Junior
Bom, eu já fiz algo que acredito que seja o que o Edevaldo pretende fazer.

Pra isso, criamos uma tabela chamada ERRO_USUARIO, assim:

CREATE TABLE ERRO_USUARIO

(

  ERR_ID   VARCHAR2(10 BYTE)NOT NULL,

  ERR_SOLUCAO  VARCHAR2(150 BYTE),

  ERR_MSG  VARCHAR2(200 BYTE)

)

 

 

INSERT INTO ERRO_USUARIO ( ERR_ID, ERR_SOLUCAO, ERR_MSG ) VALUES ( 

'-2291', 'Seleccione un valor válido', 'No fue posible insertar/actualizar este 
registro debido al campo %col% contener un valor inválido.'); 

INSERT INTO ERRO_USUARIO ( ERR_ID, ERR_SOLUCAO, ERR_MSG ) VALUES ( 

'-1400', 'Llene los campos obligatorios', 'El campo %col% debe ser 
informado'); 

INSERT INTO ERRO_USUARIO ( ERR_ID, ERR_SOLUCAO, ERR_MSG ) VALUES ( 

'-2292', 'Excluya primero los registros relacionados', 'No es posible excluir 
este registro pues el aún está siendo usado'); 

INSERT INTO ERRO_USUARIO ( ERR_ID, ERR_SOLUCAO, ERR_MSG ) VALUES ( 

'-1', 'Informe otro valor', 'No es posible incluir este registro debido a 
existir otro registro con el mismo valor'); 

COMMIT;

 

 

 

Com essa tabela criada, criar uma função que retorne mensagem personalizada que 
está na tabela acima.

Abaixo um trecho da função, que trata o sqlcode e o sqlerrm que vc passa por 
parâmetro:

 

 

SELECT e.err_msg
  INTO v_err_msg
  FROM erro_usuario e
 WHERE e.err_id = p_sqlcode;




IF p_sqlcode = '-1' THEN
  v_aux1   := instr(p_sqlerrm,
'.',
30,
1);
  v_aux2   := instr(p_sqlerrm,
')',
30,
1);
  v_constraint := substr(p_sqlerrm,
 v_aux1 + 1,
 v_aux2 - v_aux1 - 1);
  --dbms_output.put_line(v_constraint);
  SELECT table_name
INTO v_table
FROM sys.dba_constraints
   WHERE constraint_name = v_constraint
 AND owner = _user;

  RESULT := v_err_msg;

 

 

A partir daí, vc tem uma noção de como desenvolver para os outros códigos de 
maior ocorrência.

 

Em todas as SP's, coloco então no exception:

 

EXCEPTION
WHEN OTHERS THEN
  ROLLBACK;
  raise_application_error(-20001, f_erro(SQLCODE, SQLERRM));

 

 

Se fui muito confuso, me perguntem, espero ter ajudado!

 

 

Milton Bastos Henriquis Junior

Oracle Database Administrator
Equipe de Tecnologia

[EMAIL PROTECTED]
Smartn ® IT Solutions
Rua Candido de Abreu, 651 - 16º andar
Centro Cívico - Curitiba
CEP 80.530-907.

Tel: ++ 55 41 3313-8613

Fax: ++ 55 41 3313-8620

www.smartn.com.br

 



De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de jlchiappa
Enviada em: quinta-feira, 28 de dezembro de 2006 09:26
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Ajuda URGENTE.

 

Bem, há ** muito POUCOS ** erros específicos a uma dada coluna, os 
poucos que se habilitam a isso seriam caras como o 01401, 
0, inserted value too large for column ou o ORA-01400: cannot 
insert NULL into ... , eu SUPONHO que é um desses caras que vc quer 
saber a coluna a que se refere o erro. Muito bem, isso totalmente 
DEPENDE da versão do seu banco, no bd 10g a msg de erro já diz qual é a 
coluna, como mostrado em http://asktom.oracle.com/pls/asktom/f? 
http://asktom.oracle.com/pls/asktom/f? 
p=100:11:0P11_QUESTION_ID:60444718781024#60504563049629 , muito 
certamente vc poderia formatar o stack de erros com 
DBMS_UTILITY.FORMAT_ERROR_STACK, consulte o manual de referência das 
packages PL/SQL que vc acha a sintaxe desse cara. Já nas versões 9i e 
anteriores a msg de erro não te dá isso, não tem como vc capturar 
isso , o que vc pode fazer é, quando estiver investigando um erro do 
tipo, setar um evento tipo alter session set events '1401 trace name 
processstate level 10'; e re-executar a rotina, que aí vc obterá no 
servidor um arquivo com a info mais detalhada... 

[]s

Chiappa

--- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br , 
Edevaldo da Fontoura Soares 
[EMAIL PROTECTED] escreveu

 Pessoal, há uma forma de pegar o nome do campo, no qual um erro em um 
 insert / update, na exception ? Lá eu tenho a sqlcode e a sqlerrm, 
mas 
 preciso saber exatamente onde ocorreu o erro.
 
 Agradeço a ajuda.
 
 Abraços.
 
 Edevaldo Soares.
 http://br.geocities.com/edevaldosoares/edevaldo.html 
 http://br.geocities.com/edevaldosoares/edevaldo.html 
 MSN: [EMAIL PROTECTED]
 e-mail: [EMAIL PROTECTED]


 



ADVERTENCIA: Esta mensagem (incluindo quaisquer anexos) e confidencial e de uso 
restrito. Se voce recebeu esta 
mensagem por engano, por favor notifique ao emitente por meio do retorno do 
e-mail e delete (remova) esta 
mensagem de seu sistema. Qualquer uso nao autorizado ou distribuicao desta 
mensagem em 

RES: [oracle_br] Re: Ajuda com conversao de caracteres VARCHAR2-CLOB

2006-07-17 Por tôpico Anderson Haertel Rodrigues - FLN
Caro Luiz,
 
Monte uma Trigger de LOGON com as configurações necessárias de NLS_SORT, 
NLS_NUMERIC_CHARACTERS, NLS_DATE_FORMAT e assim por diante. 
Com isso você garante que sua aplicação irá rodar em qualquer NLS*.
 
Atenciosamente,

Anderson Haertel Rodrigues
Administrador de Banco de Dados
Florianópolis/SC - [EMAIL PROTECTED] 

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] nome de Luis Cabral
Enviada em: segunda-feira, 17 de julho de 2006 11:04
Para: oracle_br@yahoogrupos.com.br
Assunto: RE: [oracle_br] Re: Ajuda com conversao de caracteres VARCHAR2-CLOB


Obrigado Chiappa, vou investigar o que vc sugeriu.

Porém, o problema é que a aplicação é desenvolvida aqui, mas temos diversos 
clientes rodando diferentes versoes de Oracle 9i em diferentes sistemas 
operacionais etc. Mesmo que eu consiga resolver o problema aqui alterando 
alguma configuração no front-end, não temos controle sobre o ambiente nos 
clientes (apesar de podermos fazer recomendações). Eu precisava de uma solucao 
mais robusta, independente do front-end, afinal a aplicação vai ser disparada e 
rodar dentro do banco de dados, tendo como resultado o envio de email. 
Basicamente eu só precisava que o valor atribuido ao CLOB mantivesse os 
caracteres acentuados.

Só uma última coisa - o codigo abaixo não deveria funcionar (repare nas 2 aspas 
simples fechando a string) mas aqui funciona sem erro de sintaxe! Vai 
entender...



SQL*Plus: Release 9.2.0.4.0 - Production on Mon Jul 17 15:00:50 2006
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.7.0 - Production
With the Partitioning, Real Application Clusters, OLAP and Oracle Data Mining 
options
JServer Release 9.2.0.7.0 - Production

SQL BEGIN
  2clob_test(i_text = 'aei - aá eé iía'');
  3  end;
  4  /

PL/SQL procedure successfully completed.




From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of 
jlchiappa
Sent: 17 July 2006 14:46
To: oracle_br@yahoogrupos.com.br
Subject: [oracle_br] Re: Ajuda com conversao de caracteres VARCHAR2-CLOB

Taí, *** DE CARA *** vc tem no banco NLS_LANGUAGE=AMERICAN e na 
sessão NLS_LANGUAGE=ENGLISH, são DIFERENTES, né não, provavelmente 
VAI ter alguma conversão aí, e se a lígua está diferente, pode ser 
que o characterset também esteja, né não  faz o teste com o 
loader e experimente setar as vars de NLS no teu ambiente TODAS 
corretamente cfrme mostrado em outra msg 


[]s

Chiappa

--- Em oracle_br@yahoogrupos.com.br, Luis Cabral [EMAIL PROTECTED] 
escreveu

 Ai vai...
 
 SQL select * from nls_session_parameters;
 
 PARAMETER  VALUE
 -- -
NLS_LANGUAGE   ENGLISH
 NLS_TERRITORY  UNITED KINGDOM
 NLS_CURRENCY   £
 NLS_ISO_CURRENCY   UNITED KINGDOM
 NLS_NUMERIC_CHARACTERS .,
 NLS_CALENDAR   GREGORIAN
 NLS_DATE_FORMATDD-MON-RR
 NLS_DATE_LANGUAGE  ENGLISH
 NLS_SORT   BINARY
 NLS_TIME_FORMATHH24.MI.SSXFF
 NLS_TIMESTAMP_FORMAT   DD-MON-RR HH24.MI.SSXFF
 NLS_TIME_TZ_FORMAT HH24.MI.SSXFF TZR
 NLS_TIMESTAMP_TZ_FORMATDD-MON-RR HH24.MI.SSXFF TZR
 NLS_DUAL_CURRENCY  â'¬
 NLS_COMP   BINARY
 NLS_LENGTH_SEMANTICS   CHAR
 NLS_NCHAR_CONV_EXCPFALSE
 
 
 Obrigado!
 Luis
 
 
 
 
 From: oracle_br@yahoogrupos.com.br 
[mailto:[EMAIL PROTECTED] On Behalf Of jlchiappa
 Sent: 17 July 2006 14:08
 To: oracle_br@yahoogrupos.com.br
 Subject: [oracle_br] Re: Ajuda com conversao de caracteres VARCHAR2-
CLOB
 
 Como já dito algumas vezes e agora será repetido, os params NLS do 
 database servem como DEFAULT, ie, serão usados ** APENAS ** SE e 
 somente SE o cliente não fornecer nada... Manda aí um select * from 
 nls_session_parameters; conectado com esse cara onde vc está 
tentando 
 executar a procedure
 
 []s
 
 Chiappa
 --- Em oracle_br@yahoogrupos.com.br, Luis Cabral [EMAIL PROTECTED] 
 escreveu
 
  Olá a todos
  
  Considerem a seguinte procedure:
  
  
  create or replace procedure clob_test(i_text in varchar2) IS
  v_text CLOB;
  BEGIN
v_text := i_text;
  
dbms_output.put_line(v_text);
  end clob_test;
  
  
  Teste da procedure:
  
  BEGIN
clob_test(i_text = 'aei x áéí');
  end;
  
  
  O resultado é:
  
  aei x �
  
  
  Gostaria que o conteudo do CLOB refletisse o conteudo do 
parametro.
  
  O que esta errado/faltando? Parece ser algo na conversao de 
 varchar2 para CLOB, mas nao consegui encontrar a solucao em lugar 
 algum.
  
  Obrigado
  Luis
  
  --
  
  Oracle 9.2.0.7.0
  
  SQL select * from nls_database_parameters;
  
  PARAMETER   

RES: [oracle_br] Re: Ajuda com Query Urgente

2006-04-04 Por tôpico Nelson Cartaxo
Oi chiappa,
 
Vamos aos parametros
NAME TypeVALUE
 ---
--
optimizer_dynamic_sampling   integer 1
optimizer_features_enablestring  9.2.0
optimizer_index_caching  integer 0
optimizer_index_cost_adj integer 100
optimizer_max_permutations   integer 2000
optimizer_mode   string  CHOOSE
pga_aggregate_target big integer 83886080
workarea_size_policy string  AUTO
 
Fiz alguns testes com histogramas nas colunas utilizadas e não tive exito. A
tabela tem 126000 registros.  Se trocar o in por exists será que melhora?
Na base em oracle 8.1.7.4 a query voa da mesma maneira. O Negocio é que o
plano de execução do oracle 8i para o 9i está diferente.
 
Obrigado desde já pela atenção
 

Atenciosamente, 
Nelson Cartaxo 
DBA ORACLE 


-Mensagem original-
De: jlchiappa [mailto:[EMAIL PROTECTED]
Enviada em: terça-feira, 4 de abril de 2006 13:06
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Ajuda com Query Urgente


Como já dito algumas vezes por aqui mesmo, CBO ** implica ** diversas 
configurações a mais, como por exemplo os parâmetros optimizer_nnn, 
os parâmetros de PGA (seja sort_area e hash se for workspace manual, 
seja os param de aggregate se work=AUTO), db_multiblock_read, vc os 
ajustou ??? Rodar CBO sem eles normalmente SÓ PODE dar enrosco, o 
coitado do otimizador via estar sem algumas infos importantes, vai 
chutar e muitas vezes erra... Além disso, não basta só dizer tabela 
analizada , de que maneira vc coletou essas stats ? Vc ** MANDOU ** 
serem montados HISTOGRAMAS nas colunas com valores de distribuição 
irregular ??? Histogramas são outro ponto-CHAVE em muitos casos... 
Vamos começar por aí, só faço duas obs para essa query : 
  1. IN significa que vai haver MUITOS valores, e vc está pedindo 
MAX, que SEMPRE traz um só, alguma coisa está estranha aí

  2. pra achar o máximo valor, normalmente é MUITO mais negócio vc  
fazer : SELECT * FROM (SELECT campo from tabela order by campo desc 
NULLS LAST)
 WHERE rownum  2

  do que o MAX, o MAX normalmente ** implica ** que vc quer ler todos 
os valores.

[]s

  Chiappa

--- Em oracle_br@yahoogrupos.com.br, Nelson Cartaxo 
[EMAIL PROTECTED] escreveu

 Pessoal mais uma vez vou tentar recorrer a voces.
  
 Oracle 9.2.0.7 RedHat 2.1
  
 Seguinte ao rodar a query abaixo com a tabela analisada com 
dbms_stats e
 indices tambem analisados, o plano mostra um merge join (cartesian) 
e a
 query trava, ou seja, fica no limbo. Quando coloco um hint de RULE 
a query
 fica instantanea.   Alguem poderia me dar uma luz como faço para 
resolver.
 De repente to comendo mosca em algum parametro do oracle, ou algo 
parecido.
  
 A query é
  
 SELECT /*+ RULE */st_tarefa
 FROM siops.tb_log_tarefa Text 
 WHERE co_tarefa = 10 
 AND dt_inicio IN ( 
 SELECT MAX(dt_inicio)
 FROM siops.tb_log_tarefa TInt 
 WHERE tExt.co_tarefa = TInt.co_tarefa)
 
  
 
 Obrigado desde já pelo help.
 
  
 
  
 
 Atenciosamente, 
 Nelson Cartaxo 
 DBA ORACLE 
 
 
 -Mensagem original-
 De: Anderson Haertel Rodrigues [mailto:[EMAIL PROTECTED]
 Enviada em: terça-feira, 4 de abril de 2006 11:16
 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: [oracle_br] ENC: Dúvida BLOB
 
 
 Ricardo,
 
 Eu respondi a sua questão no Sábado a noite.
 
 
 --- Ricardo Lyrio [EMAIL PROTECTED] escreveu:
 
  Pessoal,
  
   
  
  Estou com um impasse que é o seguinte:
  
   
  
  Tenho a seguinte estrutura:
  
   
  
  36 telas de forms sendo que apenas 5 fazem
  tratamento de imagens
  
   
  
  Tabela 1
  
 Campo01
  
 Campo02
  
 ...
  
 Campo0n
  
 Imagem01
  
 Imagem02
  
 ...
  
 Imagem12
  
   
  
  As imagens são todas Blob
  
   
  
  Esta tabela tem mais ou menos 3.000.000 de registros
  
   
  
  O que seria melhor:
  
   
  
 Dividir a tabela, retirar as imagens e criar uma
  outra tabela
  
   
  
  Tabela 2
  
 FK da tabela1
  
 FK de Descrição da imagem
  
 Imagem
  
   
  
  Existe alguma limitação para o Oracle tratar em as
  imagens numa mesma
  tabela? 
  
   
  
  Grato
  
  Ricardo Lyrio
  
   
  
  
  
  [As partes desta mensagem que não continham texto
  foram removidas]
  
  
  
 
 

 --
  Atenção! As mensagens deste grupo são de acesso
  público e de inteira responsabilidade de seus
  remetentes.
  Acesse:
 
 http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
  http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/  
  
 
 

 

RES: [oracle_br] Re: Ajuda com Query Urgente

2006-04-04 Por tôpico jlchiappa
optimizer_index_caching=0 e optimizer_index_cost_adj=100 são o 
default, isso mostra que vc não os ajustou, repito, SEM ajustar esses 
caras normalmente não rola direito CBO, use o paper THE SEARCH FOR 
INTELLIGENT LIFE IN THE COST-BASED OPTIMIZER, de Tim Gorman, online 
em http://www.evdbt.com/papers.htm que ele te dá boas dicas sobre 
como os ajustar, e porque/quando os ajustar. Recomendaria também o já 
clássico A LOOK UNDER THE HOOD OF CBO: THE 10053 EVENT, de Wolfgang 
Breitling, online em www.hotsos.com (é só se registrar, é grátis) pra 
vc testar se os seus ajustes de CBO estão bem, qual é o comportamento 
duma determinada query em CBO...

 Quanto ao EXISTS, não, eu repito : vc pediu MAX, MAX retorna só uma 
linha, então tanto IN (select max... ) como EXISTS (select max...) 
não fazem muito sentido, a comparação deveria ser campo = (select 
max).
 
 Quanto à diferença de versões, sim, é MUITO comum (já que são bancos 
absolutamente DIFERENTES!!) vc ter performances diferentes... No caso 
do 9i , além dos ajustes de CBO, em casos de performance com sub-
queries vc pode checar os params citados nas notas 258167.1 e 
258945.1, não parece ser o caso aqui, mas vale o check.
 
 Quanto aos histogramas, exatamente para QUAIS colunas vc o 
armazenou, pelo que vejo ao menos nas colunas que sofrem comparação 
(ie, co_tarefa e dt_inicio ) vc deveria, Já que é 9i, vc usou a 
feature de SIZE AUTO na hora de criar os histogramas, ou especificou 
um tamanho diretamente ?
 
 []s
 
  Chiappa
  
--- Em oracle_br@yahoogrupos.com.br, Nelson Cartaxo 
[EMAIL PROTECTED] escreveu

 Oi chiappa,
  
 Vamos aos parametros
 NAME TypeVALUE
  ---
 --
 optimizer_dynamic_sampling   integer 1
 optimizer_features_enablestring  9.2.0
 optimizer_index_caching  integer 0
 optimizer_index_cost_adj integer 100
 optimizer_max_permutations   integer 2000
 optimizer_mode   string  CHOOSE
 pga_aggregate_target big integer 83886080
 workarea_size_policy string  AUTO
  
 Fiz alguns testes com histogramas nas colunas utilizadas e não tive 
exito. A
 tabela tem 126000 registros.  Se trocar o in por exists será que 
melhora?
 Na base em oracle 8.1.7.4 a query voa da mesma maneira. O Negocio é 
que o
 plano de execução do oracle 8i para o 9i está diferente.
  
 Obrigado desde já pela atenção
  
 
 Atenciosamente, 
 Nelson Cartaxo 
 DBA ORACLE 
 
 
 -Mensagem original-
 De: jlchiappa [mailto:[EMAIL PROTECTED]
 Enviada em: terça-feira, 4 de abril de 2006 13:06
 Para: oracle_br@yahoogrupos.com.br
 Assunto: [oracle_br] Re: Ajuda com Query Urgente
 
 
 Como já dito algumas vezes por aqui mesmo, CBO ** implica ** 
diversas 
 configurações a mais, como por exemplo os parâmetros optimizer_nnn, 
 os parâmetros de PGA (seja sort_area e hash se for workspace 
manual, 
 seja os param de aggregate se work=AUTO), db_multiblock_read, vc os 
 ajustou ??? Rodar CBO sem eles normalmente SÓ PODE dar enrosco, o 
 coitado do otimizador via estar sem algumas infos importantes, vai 
 chutar e muitas vezes erra... Além disso, não basta só 
dizer tabela 
 analizada , de que maneira vc coletou essas stats ? Vc ** MANDOU 
** 
 serem montados HISTOGRAMAS nas colunas com valores de distribuição 
 irregular ??? Histogramas são outro ponto-CHAVE em muitos casos... 
 Vamos começar por aí, só faço duas obs para essa query : 
   1. IN significa que vai haver MUITOS valores, e vc está pedindo 
 MAX, que SEMPRE traz um só, alguma coisa está estranha aí
 
   2. pra achar o máximo valor, normalmente é MUITO mais negócio vc  
 fazer : SELECT * FROM (SELECT campo from tabela order by campo desc 
 NULLS LAST)
  WHERE rownum  2
 
   do que o MAX, o MAX normalmente ** implica ** que vc quer ler 
todos 
 os valores.
 
 []s
 
   Chiappa
 
 --- Em oracle_br@yahoogrupos.com.br, Nelson Cartaxo 
 [EMAIL PROTECTED] escreveu
 
  Pessoal mais uma vez vou tentar recorrer a voces.
   
  Oracle 9.2.0.7 RedHat 2.1
   
  Seguinte ao rodar a query abaixo com a tabela analisada com 
 dbms_stats e
  indices tambem analisados, o plano mostra um merge join 
(cartesian) 
 e a
  query trava, ou seja, fica no limbo. Quando coloco um hint de 
RULE 
 a query
  fica instantanea.   Alguem poderia me dar uma luz como faço para 
 resolver.
  De repente to comendo mosca em algum parametro do oracle, ou algo 
 parecido.
   
  A query é
   
  SELECT /*+ RULE */st_tarefa
  FROM siops.tb_log_tarefa Text 
  WHERE co_tarefa = 10 
  AND dt_inicio IN ( 
  SELECT MAX(dt_inicio)
  FROM siops.tb_log_tarefa TInt 
  WHERE tExt.co_tarefa = TInt.co_tarefa)
  
   
  
  Obrigado desde já pelo help.
  
   
  
   
  
  Atenciosamente, 
  Nelson Cartaxo 
  DBA ORACLE 
  
  
  -Mensagem original-
  De: Anderson Haertel Rodrigues 

RES: [oracle_br] Re: AJUDA SCRIPT - URGENTE

2005-11-01 Por tôpico Ivan Ricardo Schuster
Verifique se este select traz as linhas de 1 a 10 de cada vigência:


-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Carlos Eduardo Goncalves
Enviada em: terça-feira, 1 de novembro de 2005 11:05
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Re: AJUDA SCRIPT - URGENTE

Eu coloquei, porem, o valor so aprsenta na 1ª linha.
Na 2ª linha no campo valor sai em branco.
 
Ex: Nas 10 Primeiras linhas da tabela tenho valores na vigencia 20/08/2005
  E nas linhas abaixo tenho outros 10 valores com vigencia 01/08/2002
 
Teria que sair na 1ª Linha os 10 valores da vigencia 20/08/2005
E na 2ª linha os 10 valores da vigencia 01/08/2002
 
Por favor, veja a estrutira da Tabela.

Marcio Portes [EMAIL PROTECTED] escreveu:
Coloque a vigencia no group by.

select cd_contrato, dt_venda, dt_vigencia, 
   max(decode(rn, 1, vl_mensalidade, null)) vl1,
   max(decode(rn, 3, vl_mensalidade, null)) vl3,
   max(decode(rn, 4, vl_mensalidade, null)) vl4,
   max(decode(rn, 5, vl_mensalidade, null)) vl5,
   max(decode(rn, 6, vl_mensalidade, null)) vl6,
   max(decode(rn, 7, vl_mensalidade, null)) vl7,
   max(decode(rn, 8, vl_mensalidade, null)) vl8,
   max(decode(rn, 9, vl_mensalidade, null)) vl9,
   max(decode(rn, 10, vl_mensalidade, null)) vl10
from (
select c.cd_contrato, vl_mensalidade, dt_venda, dt_vigencia,
   row_number() over (partition by c.cd_contrato order by  
dt_venda ) rn
  from valores_tabela_contrato v, dbaps.contrato c
where c.cd_contrato   = v.cd_contrato(+)
   and c.cd_contrato   = 45022
   and tp_usuario  = 'D'
   )
group by cd_contrato, dt_venda, dt_vigencia

--- Em oracle_br@yahoogrupos.com.br, cegoncalvesvr 
[EMAIL PROTECTED] escreveu
 Amigos,
 
 Na tabela Valores_Tabela_Contrato, tenho outros valores de 
 outra vigência.
 Usando o comando MAX, estou trazendo apenas os valores que 
 estão em vigencia, mas Preciso trazer os valores de vigencias 
passada.
  Teria que ter outra linha baixo com os valores antigo.
  
 Alguem poderia me ajudar?
 
 Abaixo o script que estou usando:
 
 select cd_contrato, dt_venda, 
   max(decode(rn, 1, vl_mensalidade, null)) vl1,
   max(decode(rn, 3, vl_mensalidade, null)) vl3,
   max(decode(rn, 4, vl_mensalidade, null)) vl4,
   max(decode(rn, 5, vl_mensalidade, null)) vl5,
   max(decode(rn, 6, vl_mensalidade, null)) vl6,
   max(decode(rn, 7, vl_mensalidade, null)) vl7,
   max(decode(rn, 8, vl_mensalidade, null)) vl8,
   max(decode(rn, 9, vl_mensalidade, null)) vl9,
   max(decode(rn, 10, vl_mensalidade, null)) vl10
 
from (
 select c.cd_contrato, vl_mensalidade, dt_venda, dt_vigencia,
row_number() over (partition by c.cd_contrato order by 
 dt_venda ) rn
from valores_tabela_contrato v, dbaps.contrato c
   where c.cd_contrato   = v.cd_contrato(+)
 and c.cd_contrato   = 45022
 and tp_usuario  = 'D'
 )
 group by cd_contrato, dt_venda




ORACLE_BR APOIA 2ºENPO-BR
_
O 2º Encontro Nacional de Profissionais Oracle será realizado no dia
05/11/2005 no auditório da FIAP em São Paulo. Serão apresentadas Palestras e
Cases dirigidos exclusivamente por profissionais especialistas e renomados
no mercado. Confira a programação no site do evento! http://www.enpo-br.org/
_
Area de download oracle_br - http://www.4shared.com/dir/101727/a4dcc423 


Yahoo! Grupos, um serviço oferecido por:PUBLICIDADE
var lrec_target=_blank;var lrec_URL=new
Array();lrec_URL[1]=http://br.rd.yahoo.com/SIG=12flfr8o6/M=365837.7000707.7
924794.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1130856578/A=2950750/R=0/i
d=flashurl/SIG=10tift5qr/*http://br.movies.yahoo.com/;var
lrec_flashfile=http://br.i1.yimg.com/br.yimg.com/i/br/ads6/0901_lrec_cinema
_calendario.swf?clickTAG=javascript:LRECopenWindow(1);var
lrec_altURL=http://br.rd.yahoo.com/SIG=12flfr8o6/M=365837.7000707.7924794.2
369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1130856578/A=2950750/R=1/id=altimg
/SIG=10tift5qr/*http://br.movies.yahoo.com/;var
lrec_altimg=http://br.i1.yimg.com/br.yimg.com/i/br/ads6/0829_lrec_cinema_ca
lendario.gif;var lrec_width=300;var lrec_height=250;

-
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!. 




Carlos Eduardo Gonçalves - [EMAIL PROTECTED] 
Analista de Suporte 
Casa de Saúde São José  Plano de Saúde Amigo 
São Gonçalo - RJ - Brasil 
Tel: 21 - 2607-9212 
 
 







-
 Promoção Yahoo! Acesso Grátis: a cada hora navegada você
acumula cupons e concorre a mais de 500 prêmios! Participe!

[As partes desta mensagem que não 

Re: RES: [oracle_br] Re: AJUDA SCRIPT - URGENTE

2005-11-01 Por tôpico Carlos Eduardo Goncalves
Ivan,
 
  Esta trazendo SIM
  Mas somente os 10 valores da MAIOR Vigencia.
Ivan Ricardo Schuster [EMAIL PROTECTED] escreveu:
Verifique se este select traz as linhas de 1 a 10 de cada vigência:


-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Carlos Eduardo Goncalves
Enviada em: terça-feira, 1 de novembro de 2005 11:05
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Re: AJUDA SCRIPT - URGENTE

Eu coloquei, porem, o valor so aprsenta na 1ª linha.
Na 2ª linha no campo valor sai em branco.

Ex: Nas 10 Primeiras linhas da tabela tenho valores na vigencia 20/08/2005
  E nas linhas abaixo tenho outros 10 valores com vigencia 01/08/2002

Teria que sair na 1ª Linha os 10 valores da vigencia 20/08/2005
E na 2ª linha os 10 valores da vigencia 01/08/2002

Por favor, veja a estrutira da Tabela.

Marcio Portes [EMAIL PROTECTED] escreveu:
Coloque a vigencia no group by.

select cd_contrato, dt_venda, dt_vigencia, 
   max(decode(rn, 1, vl_mensalidade, null)) vl1,
   max(decode(rn, 3, vl_mensalidade, null)) vl3,
   max(decode(rn, 4, vl_mensalidade, null)) vl4,
   max(decode(rn, 5, vl_mensalidade, null)) vl5,
   max(decode(rn, 6, vl_mensalidade, null)) vl6,
   max(decode(rn, 7, vl_mensalidade, null)) vl7,
   max(decode(rn, 8, vl_mensalidade, null)) vl8,
   max(decode(rn, 9, vl_mensalidade, null)) vl9,
   max(decode(rn, 10, vl_mensalidade, null)) vl10
from (
select c.cd_contrato, vl_mensalidade, dt_venda, dt_vigencia,
   row_number() over (partition by c.cd_contrato order by  
dt_venda ) rn
  from valores_tabela_contrato v, dbaps.contrato c
where c.cd_contrato   = v.cd_contrato(+)
   and c.cd_contrato   = 45022
   and tp_usuario  = 'D'
   )
group by cd_contrato, dt_venda, dt_vigencia

--- Em oracle_br@yahoogrupos.com.br, cegoncalvesvr 
[EMAIL PROTECTED] escreveu
 Amigos,
 
 Na tabela Valores_Tabela_Contrato, tenho outros valores de 
 outra vigência.
 Usando o comando MAX, estou trazendo apenas os valores que 
 estão em vigencia, mas Preciso trazer os valores de vigencias 
passada.
  Teria que ter outra linha baixo com os valores antigo.
  
 Alguem poderia me ajudar?
 
 Abaixo o script que estou usando:
 
 select cd_contrato, dt_venda, 
   max(decode(rn, 1, vl_mensalidade, null)) vl1,
   max(decode(rn, 3, vl_mensalidade, null)) vl3,
   max(decode(rn, 4, vl_mensalidade, null)) vl4,
   max(decode(rn, 5, vl_mensalidade, null)) vl5,
   max(decode(rn, 6, vl_mensalidade, null)) vl6,
   max(decode(rn, 7, vl_mensalidade, null)) vl7,
   max(decode(rn, 8, vl_mensalidade, null)) vl8,
   max(decode(rn, 9, vl_mensalidade, null)) vl9,
   max(decode(rn, 10, vl_mensalidade, null)) vl10
 
from (
 select c.cd_contrato, vl_mensalidade, dt_venda, dt_vigencia,
row_number() over (partition by c.cd_contrato order by 
 dt_venda ) rn
from valores_tabela_contrato v, dbaps.contrato c
   where c.cd_contrato   = v.cd_contrato(+)
 and c.cd_contrato   = 45022
 and tp_usuario  = 'D'
 )
 group by cd_contrato, dt_venda




ORACLE_BR APOIA 2ºENPO-BR
_
O 2º Encontro Nacional de Profissionais Oracle será realizado no dia
05/11/2005 no auditório da FIAP em São Paulo. Serão apresentadas Palestras e
Cases dirigidos exclusivamente por profissionais especialistas e renomados
no mercado. Confira a programação no site do evento! http://www.enpo-br.org/
_
Area de download oracle_br - http://www.4shared.com/dir/101727/a4dcc423 


Yahoo! Grupos, um serviço oferecido por:PUBLICIDADE
var lrec_target=_blank;var lrec_URL=new
Array();lrec_URL[1]=http://br.rd.yahoo.com/SIG=12flfr8o6/M=365837.7000707.7
924794.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1130856578/A=2950750/R=0/i
d=flashurl/SIG=10tift5qr/*http://br.movies.yahoo.com/;var
lrec_flashfile=http://br.i1.yimg.com/br.yimg.com/i/br/ads6/0901_lrec_cinema
_calendario.swf?clickTAG=javascript:LRECopenWindow(1);var
lrec_altURL=http://br.rd.yahoo.com/SIG=12flfr8o6/M=365837.7000707.7924794.2
369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1130856578/A=2950750/R=1/id=altimg
/SIG=10tift5qr/*http://br.movies.yahoo.com/;var
lrec_altimg=http://br.i1.yimg.com/br.yimg.com/i/br/ads6/0829_lrec_cinema_ca
lendario.gif;var lrec_width=300;var lrec_height=250;

-
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!. 




Carlos Eduardo Gonçalves - [EMAIL PROTECTED] 
Analista de Suporte 
Casa de Saúde São José  Plano de Saúde Amigo 
São Gonçalo - RJ - Brasil 
Tel: 21 - 2607-9212 









-
Promoção Yahoo! Acesso Grátis: a cada hora 

RES: [oracle_br] Re: AJUDA SCRIPT - URGENTE

2005-11-01 Por tôpico Marcio Portes
Isto é lógico, já que voce está ordenando pelo row_number() e 
apresentando somente 10 valores. Tá um pouco confuso o que voce tá 
querendo.

--- Em oracle_br@yahoogrupos.com.br, Carlos Eduardo Goncalves 
[EMAIL PROTECTED] escreveu
 Ivan,
  
   Esta trazendo SIM
   Mas somente os 10 valores da MAIOR Vigencia.
 Ivan Ricardo Schuster [EMAIL PROTECTED] escreveu:
 Verifique se este select traz as linhas de 1 a 10 de cada vigência:
 
 
 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br 
[mailto:[EMAIL PROTECTED] Em
 nome de Carlos Eduardo Goncalves
 Enviada em: terça-feira, 1 de novembro de 2005 11:05
 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: [oracle_br] Re: AJUDA SCRIPT - URGENTE
 
 Eu coloquei, porem, o valor so aprsenta na 1ª linha.
 Na 2ª linha no campo valor sai em branco.
 
 Ex: Nas 10 Primeiras linhas da tabela tenho valores na vigencia 
20/08/2005
   E nas linhas abaixo tenho outros 10 valores com vigencia 
01/08/2002
 
 Teria que sair na 1ª Linha os 10 valores da vigencia 20/08/2005
 E na 2ª linha os 10 valores da vigencia 01/08/2002
 
 Por favor, veja a estrutira da Tabela.
 
 Marcio Portes [EMAIL PROTECTED] escreveu:
 Coloque a vigencia no group by.
 
 select cd_contrato, dt_venda, dt_vigencia, 
max(decode(rn, 1, vl_mensalidade, null)) vl1,
max(decode(rn, 3, vl_mensalidade, null)) vl3,
max(decode(rn, 4, vl_mensalidade, null)) vl4,
max(decode(rn, 5, vl_mensalidade, null)) vl5,
max(decode(rn, 6, vl_mensalidade, null)) vl6,
max(decode(rn, 7, vl_mensalidade, null)) vl7,
max(decode(rn, 8, vl_mensalidade, null)) vl8,
max(decode(rn, 9, vl_mensalidade, null)) vl9,
max(decode(rn, 10, vl_mensalidade, null)) vl10
 from (
 select c.cd_contrato, vl_mensalidade, dt_venda, dt_vigencia,
row_number() over (partition by c.cd_contrato order by  
 dt_venda ) rn
   from valores_tabela_contrato v, dbaps.contrato c
 where c.cd_contrato   = v.cd_contrato(+)
and c.cd_contrato   = 45022
and tp_usuario  = 'D'
)
 group by cd_contrato, dt_venda, dt_vigencia
 
 --- Em oracle_br@yahoogrupos.com.br, cegoncalvesvr 
 [EMAIL PROTECTED] escreveu
  Amigos,
  
  Na tabela Valores_Tabela_Contrato, tenho outros valores de 
  outra vigência.
  Usando o comando MAX, estou trazendo apenas os valores que 
  estão em vigencia, mas Preciso trazer os valores de vigencias 
 passada.
   Teria que ter outra linha baixo com os valores antigo.
   
  Alguem poderia me ajudar?
  
  Abaixo o script que estou usando:
  
  select cd_contrato, dt_venda, 
max(decode(rn, 1, vl_mensalidade, null)) vl1,
max(decode(rn, 3, vl_mensalidade, null)) vl3,
max(decode(rn, 4, vl_mensalidade, null)) vl4,
max(decode(rn, 5, vl_mensalidade, null)) vl5,
max(decode(rn, 6, vl_mensalidade, null)) vl6,
max(decode(rn, 7, vl_mensalidade, null)) vl7,
max(decode(rn, 8, vl_mensalidade, null)) vl8,
max(decode(rn, 9, vl_mensalidade, null)) vl9,
max(decode(rn, 10, vl_mensalidade, null)) vl10
  
 from (
  select c.cd_contrato, vl_mensalidade, dt_venda, dt_vigencia,
 row_number() over (partition by c.cd_contrato order by 
  dt_venda ) rn
 from valores_tabela_contrato v, dbaps.contrato c
where c.cd_contrato   = v.cd_contrato(+)
  and c.cd_contrato   = 45022
  and tp_usuario  = 'D'
  )
  group by cd_contrato, dt_venda
 
 
 
 
 ORACLE_BR APOIA 2ºENPO-BR
 
_
 O 2º Encontro Nacional de Profissionais Oracle será realizado no dia
 05/11/2005 no auditório da FIAP em São Paulo. Serão apresentadas 
Palestras e
 Cases dirigidos exclusivamente por profissionais especialistas e 
renomados
 no mercado. Confira a programação no site do evento! 
http://www.enpo-br.org/
 
_
 Area de download oracle_br - 
http://www.4shared.com/dir/101727/a4dcc423 
 
 
 Yahoo! Grupos, um serviço oferecido por:PUBLICIDADE
 var lrec_target=_blank;var lrec_URL=new
 Array();lrec_URL[1]
=http://br.rd.yahoo.com/SIG=12flfr8o6/M=365837.7000707.7
 
924794.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1130856578/A=2950750
/R=0/i
 d=flashurl/SIG=10tift5qr/*http://br.movies.yahoo.com/;var
 
lrec_flashfile=http://br.i1.yimg.com/br.yimg.com/i/br/ads6/0901_lrec_
cinema
 _calendario.swf?clickTAG=javascript:LRECopenWindow(1);var
 
lrec_altURL=http://br.rd.yahoo.com/SIG=12flfr8o6/M=365837.7000707.792
4794.2
 
369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1130856578/A=2950750/R=1/id=
altimg
 /SIG=10tift5qr/*http://br.movies.yahoo.com/;var
 
lrec_altimg=http://br.i1.yimg.com/br.yimg.com/i/br/ads6/0829_lrec_cin
ema_ca
 lendario.gif;var lrec_width=300;var lrec_height=250;
 
 -
 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: