Re: [oracle_br] tamanho ideal do redo..

2016-12-13 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Bom dia Angelo,

 Também trabalho com migração de dados e geralmente para evitar um grande
gargalo no caso de log, fazemos uma configuração conforme o tamanho dos
dados a serem importados. Nisso o log fica entre 200mb a 500mb, no nosso
caso está atendendo e não gera muitos archives.

Att,
Emerson S. Gaudêncio

2016-12-13 10:30 GMT-03:00 angelo angelolis...@gmail.com [oracle_br] <
oracle_br@yahoogrupos.com.br>:

>
>
> Opa! bom dia
>
> 11gr2 win64 (11.2.0.4)
>
> A recomendação que fazem de pegar os ultimos 15 min de archive logs
> produzidos pelo banco
> pra definir um tamanho ideal pro redolog.. seria algo que se pode confiar
> ?
>
> Quando grava muitos em pouco tempo entra a questao do I/O. Se é grande
> demais e demora a descarregar o redo, também pode ficar inconsistente no
> caso de um crash e nao ter log para voltar com o backup...  entao,
> chutômetro teria que passar longe tb..
>
> Essa base entrou no ar tem pouco tempo, o redo ta no tamanho padrao ainda
> (50 mb)
> Ela da uns "picos" de log seguido por causa de umas rotinas de carga em
> tabela, porque ainda migra algumas informações do sistema antigo.
>
> E esse servidor produção é provisório, a base vai "morar" num linux até o
> inicio do ano que vem, assim espero..
>
>  Pasta de G:\U01\fast_recovery_area\ORALAB\ARCHIVELOG\2016_12_13
>
> 13/12/2016  11:07  .
> 13/12/2016  11:07  ..
> 13/12/2016  04:2040.978.944 O1_MF_1_2348_D4Z4T4BL_.ARC
> 13/12/2016  09:0842.750.976 O1_MF_1_2349_D4ZOO44P_.ARC
> 13/12/2016  09:0948.316.416 O1_MF_1_2350_D4ZOPXDQ_.ARC
> 13/12/2016  09:0945.516.288 O1_MF_1_2351_D4ZOR1J9_.ARC
> 13/12/2016  09:1142.886.656 O1_MF_1_2352_D4ZOT3PW_.ARC
> 13/12/2016  09:1246.206.464 O1_MF_1_2353_D4ZOWKWZ_.ARC
> 13/12/2016  09:1841.257.472 O1_MF_1_2354_D4ZP78QJ_.ARC
> 13/12/2016  09:2141.045.504 O1_MF_1_2355_D4ZPFO37_.ARC
> 13/12/2016  09:5540.813.568 O1_MF_1_2356_D4ZRG2NB_.ARC
> 13/12/2016  10:1548.666.624 O1_MF_1_2357_D4ZSL52M_.ARC
> 13/12/2016  10:1550.445.824 O1_MF_1_2358_D4ZSLTDD_.ARC
> 13/12/2016  10:1549.570.304 O1_MF_1_2359_D4ZSMH52_.ARC
> 13/12/2016  10:1650.048.000 O1_MF_1_2360_D4ZSN4BG_.ARC
> 13/12/2016  10:1649.065.472 O1_MF_1_2361_D4ZSNS8Z_.ARC
> 13/12/2016  10:1640.884.736 O1_MF_1_2362_D4ZSOCGC_.ARC
> 13/12/2016  11:0744.499.456 O1_MF_1_2363_D4ZWMTJ5_.ARC
>   16 arquivo(s)722.952.704 bytes
>
> G:\U01\fast_recovery_area\ORALAB\ARCHIVELOG\2016_12_13>
>
>
> []s angelo
>
> 
>


Re: [oracle_br] Ajuda com enq: TM - contention

2016-12-12 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Boa Tarde Everson,

 Qual a versão do Oracle está utilizando (standard, enterprise)?

- Caso esteja utilizando enterprise, acredito que possa utilizar tabelas
particionadas na tabela pai para assim somente ler a partição de dados que
esteja fazendo o delete somente.

- Como não informou qual o numero de linhas no qual manipula através desta
operação, acredito que é possível efetuar uma melhorar da deleção caso
implemente deleção numa coleção de dados, utilizando "forall" e "bulk
collect", isso sendo independente da versão do oracle database que você
esteja utilizando.

Link para pesquisa:
https://oracle-base.com/articles/9i/bulk-binds-and-record-processing-9i

Lembrando que para utilizar o bulk collect é necessário estar com as
estatísticas do esquema que esteja utilizando para fazer a leitura dessa
coleção em dias.

São sugestões, pois você não deu mais detalhes sobre o tamanho e nem o
ambiente utilizado.

Att,
Emerson S, Gaudêncio


2016-12-12 15:44 GMT-03:00 Everson Piza eversonp...@hotmail.com [oracle_br]
:

>
>
> Olá amigos,
>
> (oracle 11.2.0.3)
>
>
> Estou enfrentando alguns problemas de contenção TM, mas não estou
> conseguindo achar a solução.
>
>
> Por exemplo.
>
>
> Faço um delete na tabela X, essa tabela X tem FK para outras 8 tabelas,
> mas todas as colunas da tabela X que possuem FK estão indexadas.
>
>
> Até onde eu sei, a falta de índice na tabela 'filha', causa lock em casa
> de alteração no pai, correto? Sendo assim, não vejo oq fazer para prevenir
> esse tipo de contenção.
>
>
> Vocês podem me ajudar?
>
>
> Obrigado.
>
> Everson
>
> 
>


Re: [oracle_br] Quantidade de nós

2016-12-01 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
https://docs.oracle.com/cd/E11882_01/license.112/e47877.pdf

Em 1 de dezembro de 2016 14:25, palomacbarb...@yahoo.com.br [oracle_br] <
oracle_br@yahoogrupos.com.br> escreveu:

>
>
> Oracle Standard 11.2.0.4
>
> Linux Red Hat 5.7
>
>
>
>
> Caros, boa tarde.
>
>
> Alguém saberia me informar qual a quantidade de nós que eu posso ter em um
> Oracle RAC Standard?
>
>
>
>
>
>
> Paloma Barbosa.
>
> 
>


Re: [oracle_br] Migração EMC VX 5300 -> EMC Xtreme IO - Sector Size recomendado?

2016-11-25 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Boa Tarde Eduardo,

 Lendo a documentação abaixo na pagina 21:

Tamanhos de solicitação de I/O multiblock

O banco de dados Oracle executa I/O nos arquivos de dados em múltiplos do
tamanho de block do banco de dados (db_block_size), que é de 8 KB por
padrão. O tamanho padrão de block do banco de dados Oracle é ideal no
XtremIO. O XtremIO também é compatível com tamanhos maiores de block. No
caso de I/O multiblock (p. ex., varreduras de tabela/índice com o método de
acesso completo), o administrador deve ajustar o parâmetro de inicialização
do banco de dados Oracle db_file_multiblock_read_count para limitar as
solicitações em até 128 KB. Portanto, a fórmula para
db_file_multiblock_read_count é: db_file_multiblock_read_count =
128KB/db_block_size Historicamente, o banco de dados Oracle foi otimizado
para executar transferências bastante grandes a fim de reduzir o custo de
busca sofrido por leituras multiblock em drives mecânicos. Em um ambiente
livre de busca, como o do XtremIO, tal redução não é necessária. Além
disso, a maioria dos adaptadores de barramento de host Fibre Channel exigem
que o Linux segmente grandes solicitações em várias solicitações. Por
exemplo, uma solicitação de I/O do aplicativo de 1 megabyte é fragmentada
pela camada de I/O de block do Linux em 2 transferências de 512 KB para se
adequar ao tamanho de transferência máxima de HBA.

O Recomendado é 512k no Storage e 8k no Oracle.

Att,
Emerson S. Gaudêncio


Em 25 de novembro de 2016 15:25, Eduardo Dornelles eod.edua...@gmail.com
[oracle_br]  escreveu:

>
>
> Boa tarde pessoal.
>
> Gostaria de tirar uma dúvida em relação ao sector size recomendado pro
> Oracle. Vamos migrar nosso ambiente, de uma EMC VX 5300 pra uma EMC Xtreme
> IO.
>
> Eu sou Junior em Oracle, mas tenho parceiro especialista que é Platinum,
> essa empresa questiona se o sector size deve permanece em 512 bytes na
> storage nova, como já é na antiga, ou se queremos aplicar algum patch pra
> alterar o valor. O parceiro de banco espera que o fornecedor da storage
> indique o é mais performático conforme recomendação do fabricante.
>
> O parceiro autorizado da EMC recomenda usar 4K, que é uma das grandes
> vantagens do equipamento que é flash array, mas na própria documentação que
> esse parceiro passou como referência, parece que não é recomendado usar os
> 4k quando a storage for utilizada para bancos Oracle.
>
>
> Na falta de conhecimento mais avançado, gostaria da opinião dos senhores,
> e se tiveram algum case parecido.
>
> Segue link da documentação, atentar para a página 20:
> http://brazil.emc.com/collateral/white-papers/
> h13497-oracle-best-practices-xtremio-wp.pdf
>
>
>
> Desde já, muito obrigado pela atenção.
> Abraço.
>
>
>
>
> Atenciosamente,
>
> *Eduardo Dornelles*
> Departamento de Tecnologia da Informação
> Fone (51) 3284.1546
> Rua dos Andradas, 846
> Bairro Centro, Porto Alegre/RS
> Cep 90020-006
> *www.afpergs.com.br *
>
> 
>


Re: [oracle_br] Funcao para carregar variavel

2016-11-23 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Correção:

WITH DT_DATA_BASE AS
 (SELECT MAX(DAT_MAILING) as data FROM TBL_MAILING)
SELECT ACACTDTE FROM TBL_PAGTOS_1000 WHERE ACACTDTE >= (select data from
DT_DATA_BASE);


Re: [oracle_br] Funcao para carregar variavel

2016-11-23 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Bom dia Roberto,

 Acredito que para o que esteja precisando, o script abaixo possa te
atender.

DECLARE
   DT_DATA_BASE DATE;
BEGIN
   -- busca ultima data da tabela
   SELECT MAX(DataCampo) INTO DT_DATA_BASE FROM Tabela;
END;

Só lembrando que é você omitiu informações, de qual a versão do Oracle está
utilizando? , qual o S.O?

Att,
Emerson

Em 23 de novembro de 2016 09:48, Roberto Andrusievicz Junior
roberto_andrusievicz_jun...@carrefour.com [oracle_br] <
oracle_br@yahoogrupos.com.br> escreveu:

>
>
> Bom dia Nobres Colegas
>
> Preciso carregar uma variável dinamicamente
>
> UNDEFINE DT_DATA_BASE
> DEFINE DT_DATA_BASE = SELECT MAX(CampoData) FROM Tabela;
>
>
> Hoje esta assim: Executo a query, leio o resultado e cadastro manualmente:
> SELECT MAX(CampoData) FROM Tabela;
>
> UNDEFINE DT_DATA_BASE
> DEFINE DT_DATA_BASE = TO_DATE('23/11/2016 00:00:00');
>
> Não sou DBA mas tenho umas queryes que preciso atualizar no meu dia a dia.
> Fui pesquisar e tudo indica que no oracle somente com funcao, mas não
> achei
> uma funcao pronta e a que tentei criar foi um fiasco, rs, nem roda.
>
> Alguém poderia me ajuda?
>
> Agradeço antecipadamente,
>
>
>
>
>
>
>
>
>
> De: "jlchia...@yahoo.com.br [oracle_br]"
> 
> Para: 
> Data: 22/11/2016 21:07
> Assunto: [oracle_br] Re: Dúvida sobre suporte nível 3
> Enviado por: oracle_br@yahoogrupos.com.br
>
>
>
>
>
>
> Yep : acho que ficou Claro para todos que leram a thread que uma empresa
> terceira *** PODE  tranquilamente dar Suporte para dúvidas,
> best-practices e implementação de tecnologia Oracle (normalmente baseada
> em
> sua experiência anterior), ** PODE ** dar Consultoria / apoio para uma
> terceira empresa que vai adquirir Suporte da Oracle , é tranquilinho, e
> tem
> muitas Empresas terceiras parceiras que prestam esse tipo de serviço...
> Até
> aqui, tá claro, acho...
>
> O ponto de violação é em relação a download de Patches, Upgrades do
> software, Bugfixes e Documentos Técnicos criados pelo Suporte Oracle, E
> também a abrir Chamados para ser atendido por Analista de Suporte Oracle :
> tudo isso vc só consegue baixar/obter comprando um Contrato de Suporte, e
> é
> *** CLARAMENTE  indicado nesse Contrato que vc só pode usar esse
> material NA SUA EMPRESA, que é a mesma Empresa que comprou o contrato : É
> ABSOLUTAMENTE PROIBIDO vc publicar esse material publicamente,
> copiar/distribuir (de graça OU não!!!) para outras Empresas que não a sua
> que comprou o Contrato, aplicar esse material em equipamentos/produtos
> Oracle não comprados/não-pertencentes á Empresa que adquiriu o contrato de
> suporte IDEM pra abrir um Chamado de atendimento no Suporte Oracle : é
> ESPERADO que vc abra chamados apenas para os SEUS PRÓPRIOS
> ambientes/databases/servidores : receber do cliente uma queixa tal e qual
> e
> abrir um Chamado enganando o Analista de Suporte, dizendo que o
> atendimento
> tá sendo feito na máquina dela quando na verdade é uma máquina de cliente,
> Não É permitido...
>
> Foi justamente essa a violação da tal "Rimini" pelo que vi : ela comprou
> um Contrato de Suporte com a Oracle , baixou bugfixes/patches/documentos
> técnicos E os distribuiu pros seus Clientes, E também andou abrindo
> Chamados no Suporte Oracle dizendo que o atendimento tava sendo feito na
> máquina dela quando era máquina de cliente : não só ela levou uma
> Invertida
> legal, mas certamente os Clientes dela vão receber uma visitinha da
> Auditoria Oracle - se o pessoal da Auditoria achar patches/bugfixes
> aplicados no software Oracle E a empresa não tiver um Contrato de Suporte
> válido, ela não vai ter como explicar de onde baixou isso, lá vem a
> multinha pra deixar de ser besta
>
> []s
>
> Chiappa
>
> IMPORTANTE : óbvio Ululante, a violação é a tal empresinha DISTRIBUIR /
> REVENDER diretamente e na íntegra pros clientes dela o material vindo do
> Suporte Oracle - se ela tivesse usado o material internamente, para
> estudar
> e adquirir conhecimento, e vendesse pros clientes Esse conhecimento, CLARO
> que ela estaria 100% legal... Como eu disse, tem TROCENTAS empresas que
> fazem isso
>
> Por exemplo, digamos que os clientes dela tavam com dúvidas de Upgrade pro
> 12c, digamos : SE ao invés de Ilegamente baixar do metalink e enviar pros
> clientes as notas e documentos técnicos metalink sobre Upgrade a tal
> empresinha tivesse Estudado as notas/documentos e criado um Relatório
> próprio com a mesma info, estaria 100% legal... OU ainda, digamos que os
> clientes dela talvez estivessem caindo num bug X já conhecido, se ao invés
> de ter (ilegalmente!!) repassado o bugfix direto pro cliente ela tivesse
> feito uma CONSULTORIA (ie, aplicado o bugfix nas máquinas dela , testado e
> depois mandado um Relatório pro clientes "ó, aplica o bugfix tal e qual
> que
> resolve"), também estaria 100% legal
>
> Blz ?
>
>
>
> This e-mail and any attachment are confidential and intended solely for
> the use of the 

Re: [oracle_br] Diferença executando REGEXP_LIKE

2016-10-04 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
 Zilmar,

Acredito que seja alguma configuração do cliente configurado na sua
maquina, que esteja mudando o comportamento do resultado, os parâmetros que
interferem nisso é o NLS_LANG, segue abaixo algumas referências para
verificar isso:

https://docs.oracle.com/html/B13804_02/gblsupp.htm

http://www.cooperati.com.br/2013/05/08/oracle-parmetros-de-sesso-alterando-nls-da-conexo/

http://eduardolegatti.blogspot.com.br/2013/04/ignorando-caracteres-acentuados.html

http://aserlorenzo.com/manSQL/Oracle/dml/funcoes/formatdatasnumeros.htm

http://www.leniel.net/2010/03/oracle-nlslang-character-set-encoding.html#sthash.g6E6qqie.dpbs

Att,
Emerson

Em 4 de outubro de 2016 17:21, zfurq...@gmail.com [oracle_br] <
oracle_br@yahoogrupos.com.br> escreveu:

>
>
> Colegas,
>
> Complementando minha dúvida, o problema ocorre devido aos caracteres
> acentuados, que numa máquina são considerados e geram o erro (o que seria o
> esperado) e em outra máquina não são considerados e portanto não geram erro
> e trazem um resultado incorreto a princípio.
>
> Ajudem-me por favor, mestres do Oracle (Chiappa e cia).
>
>
> Abs,
> Zilmar Furquim
>
> 
>


Re: [oracle_br] Diferença executando REGEXP_LIKE

2016-10-04 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Zilmar,

 Desculpe pela correria, li muito por cima e acabei não entendendo
corretamente sua necessidade. Repassei algumas referência no e-mail
anterior que podem te auxiliar para entender o que está acontecendo nesta
sua situação.

Att,
Emerson

Em 4 de outubro de 2016 17:38, zfurq...@gmail.com [oracle_br] <
oracle_br@yahoogrupos.com.br> escreveu:

>
>
> Emerson,
>
> Obrigado pelo retorno, mas no link que você passou não consegui achar nada
> que me ajudasse a resolver o problema.
>
> Se mais alguém puder ajudar ficarei muito agradecido.
>
> Abs,
> Zilmar Furquim
> Synchro Systems
>
> 
>


Re: [oracle_br] Diferença executando REGEXP_LIKE

2016-10-04 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Boa tarde Zilmar,

 Segue abaixo, link com algumas implentações utilizando regex no Oracle:
http://blog.gaudencio.net.br/2016/10/oracle-utilizando-regex-para-consultas.html

Att,
Emerson

Em 4 de outubro de 2016 16:56, zfurq...@gmail.com [oracle_br] <
oracle_br@yahoogrupos.com.br> escreveu:

>
>
> Boa tarde colegas,
>
>
> Alguém sabe me dizer se existe algum setting de sessão e/ou de banco ou
> qualquer outra coisa que possa alterar o resultado de um REGEXP_LIKE ???
>
>
> Rodando o exemplo abaixo no SQL*Plus, para mim sempre retorna 1, mas para
> um outro colega em um outro local retorna sempre 0 (zero).
>
> A intenção é que o resultado fosse ZERO mesmo (indicando um erro), mas
> estamos tendo problema porque volta 0 conforme abaixo:
>
>
> SQL*Plus: Release 10.2.0.1.0 - Production on Ter Out 4 17:54:55 2016
>
>
> Copyright (c) 1982, 2005, Oracle.  All rights reserved.
>
>
>
> Conectado a:
>
> Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit
> Production
>
> With the Partitioning, Oracle Label Security, OLAP, Data Mining Scoring
> Engine
>
> and Real Application Testing options
>
>
> SVP> Declare
>
>   2  nResultNumber;
>
>   3  Begin
>
>   4  Begin
>
>   5  Select 1
>
>   6  Into nResult
>
>   7  From dual
>
>   8  Where  REGEXP_LIKE ( 'lilian.leite@autoação2000.com.br
> ','^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$');
>
>   9  Exception
>
>  10  When Others Then
>
>  11  nResult := 0;
>
>  12  End;
>
>  13  Dbms_Output.Put_Line('nResult='||nResult);
>
>  14  End;
>
>  15  /
>
> nResult=1
>
>
> Procedimento PL/SQL concluído com sucesso.
>
>
> Alguma luz ???
>
>
> Obrigado,
>
>
> Zilmar Furquim
>
> Synchro Systems
>
>
>
> 
>


Re: [oracle_br] [ NOME DA TABELA COMO PARAMETRO NA PROCEDURTE ]

2016-09-19 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
http://www.toadworld.com/products/toad-for-oracle/w/toad_for_oracle_wiki/231.dbms-sql-vs-execute-immediate

Em 19 de setembro de 2016 14:21, Ricardo C.Sá | DBA ricardo@terra.com.br
[oracle_br]  escreveu:

>
>
> Rodrigo, obrigado pela dica.
>
>
>
> Mas eu tinha informado na minha duvida, que não queria usar o Execute
> Immediate...
>
>
>
> *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
> *Enviada em:* segunda-feira, 19 de setembro de 2016 15:10
> *Para:* oracle_br@yahoogrupos.com.br; oracle_br@yahoogrupos.com.br
> *Assunto:* Re: [oracle_br] [ NOME DA TABELA COMO PARAMETRO NA PROCEDURTE ]
>
>
>
>
>
> Sim! Monta a string e usa o execute imediate para executar o comando!
>
> Get Outlook for iOS 
>
>
> --
>
> *From:* oracle_br@yahoogrupos.com.br  on
> behalf of Ricardo C.Sá | DBA ricardo@terra.com.br [oracle_br] <
> oracle_br@yahoogrupos.com.br>
> *Sent:* Monday, September 19, 2016 2:19:41 PM
> *To:* oracle_br@yahoogrupos.com.br
> *Subject:* [oracle_br] [ NOME DA TABELA COMO PARAMETRO NA PROCEDURTE ]
>
>
>
>
>
> Pessoal, boa tarde.
>
>
>
> É possível informar o nome da tabela em uma procedure, e dentro da
> procedure executar um INSERT passando diretamente o nome da tabela sem que
> seja feito um Execute Immediate ?
>
>
>
> Att.:
>
> Ricardo Sá
>
> 
>


Re: [oracle_br] [ NOME DA TABELA COMO PARAMETRO NA PROCEDURTE ]

2016-09-19 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Boa Tarde Ricardo,

 Acredito que você possa utilizar o pacote DBMS_SQL para executar SQL´s
dinamicos.
Segue os links para referência:

http://docstore.mik.ua/orelly/oracle/bipack/ch02_05.htm

http://psoug.org/reference/dbms_sql.html

https://docs.oracle.com/cd/E11882_01/timesten.112/e21645/d_sql.htm

Att,
Emerson S. Gaudêncio



Em 19 de setembro de 2016 13:19, Ricardo C.Sá | DBA ricardo@terra.com.br
[oracle_br]  escreveu:

>
>
> Pessoal, boa tarde.
>
>
>
> É possível informar o nome da tabela em uma procedure, e dentro da
> procedure executar um INSERT passando diretamente o nome da tabela sem que
> seja feito um Execute Immediate ?
>
>
>
> Att.:
>
> Ricardo Sá
>
> 
>


Re: [oracle_br] Carga de Tabela

2016-08-31 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Boa Tarde Eduardo,

 Entendi que você está querendo copia os dados de uma tabela para outra.
Não entendi se você quer desmembrar esses dados ou simplesmente copiar.
Outra questão é que essa copia será feita uma ou mais vezes?

Se for uma cópia simples, você poderia efetuar a carga fazendo um buffer de
commits para evitar a geração de redo logs, simplificando sua carga de
informações.

Exemplo:

DECLARE
   v_contadorNUMBER(8) := 0;
   v_commit  NUMBER(8) := 100;
   v_row_tbteste teste.tbteste%ROWTYPE;
BEGIN
   FOR rc1 IN (SELECT * FROM tborigemdedados)
   LOOP
  v_row_tbteste := rc1;
  INSERT INTO teste.tbteste VALUES v_row_tbteste;
  
  -- commit a cada 100 registros --
  v_contador := v_contador + 1;
  IF MOD(v_contador, v_commit) = 0
  THEN
 COMMIT;
  END IF;
  -
   END LOOP;
   COMMIT;
END;


Precisando de alguma ajuda estou a disposição.

Att,
Emerson S. Gaudêncio

Em 31 de agosto de 2016 12:59, Eduardo Souza pjabran...@gmail.com
[oracle_br]  escreveu:

>
>
> Caros amigos, boa tarde!
>
> Estou criando uma procedure para carga de uma tabela (vazia) a partir de
> uma que possui mais de 6.000.000 de linhas.  Ela possui 335 colunas e cada
> coluna possui um critério de seleção próprio, ou seja, são 335 selects
> utilizando de 2 a 4 tabelas.  Em muitas delas eu só preciso acessar 1ª
> primeira linha de retorno do select.
>
> Levando-se em conta os devidos planos de execução acessando seus devidos
> índices o que mais eu posso implementar visando a otimização/performance
> desse processo?
>
> Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production
> PL/SQL Release 12.1.0.2.0 - Production
> "CORE 12.1.0.2.0 Production"
> TNS for 64-bit Windows: Version 12.1.0.2.0 - Production
> NLSRTL Version 12.1.0.2.0 - Production
>
> Grande abraço.
>
> 
>


Re: [oracle_br] Re: Diferenciar Datas

2016-08-24 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Boa Tarde Mario,

Utiliza desta maneira:

SELECT colunas FROM tabela
  WHERE to_char(to_date(colunadate, 'dd/mm/ hh24:mi:ss'), 'dd/mm/
hh24:mi:ss') = to_char(to_date('24/08/2016 00:00:00', 'dd/mm/
hh24:mi:ss'), 'dd/mm/ hh24:mi:ss');

Vê se isso te atende. Mais recomendo ler os e-mails do Chiappa
anteriormente.

Att,
Emerson S. Gaudêncio

Em 24 de agosto de 2016 15:15, Mario Rodrigues marioirodrig...@gmail.com
[oracle_br]  escreveu:

>
>
> Rapaz, nenhuma dessas alternativas funcionaram.
>
> Nas 4 linhas abaixo
>
> Como faço para selecionar somente a que tem a data SEM hh24:mi:ss
>
> 24/08/2016
> 24/08/2016 10:11:44
> 24/08/2016 12:52:16
> 24/08/2016 15:15:00
>
> ou seja
>
> select * from tabela
> where DATA = ??
>
> se eu der um TRUNC(data) ai é que todas as datas ficarão  24/08/2016, ou
> não?? pq tentei aqui e não deu certo
>
>
>
> Em 24 de agosto de 2016 16:01, Mario Rodrigues 
> escreveu:
>
>> O que quero é trazer somente a linha que tem somente a data 24/08/2016
>> SEM a hora  ... ignorar hh24:mi:ss
>>
>> com o TRUNC tentei:
>>
>> and TRUNC(data) = trunc(sysdate) - não deu certo
>> and data = TRUNC(sysdate) - não deu certo
>>
>>
>>
>>
>> Em 24 de agosto de 2016 15:55, jlchia...@yahoo.com.br [oracle_br] <
>> oracle_br@yahoogrupos.com.br> escreveu:
>>
>>>
>>>
>>> Explica um pouco melhor : vc quer trazer só quem tem a porção-hora do
>>> datetime vazia (e portanto automagicamente o Oracle enfia um 00:00:00 nela)
>>> OU quer trazer todo mundo que a porção date do datetime é '24/08/2016', **
>>> independente se está ou não preenchida (e preenchida com o que) a porção
>>> time ??
>>>  SE é trazer todo mundo que TIME está zerado, o TRUNC funcionaria, então
>>> IMAGINO que vc quer é desprezar o time : a melhor maneira de fazer isso é :
>>>
>>>   SELECT colunas FROM tabela
>>>WHERE colunadatetime between TO_DATE('24/08/2016 00:00:00',
>>> 'dd/mm/ hh24:mi:ss')
>>> and TO_DATE('24/08/2016 23:59:59',
>>> 'dd/mm/ hh24:mi:ss');
>>>
>>> []s
>>>
>>>   Chiappa
>>>
>>
>>
> 
>


Re: [oracle_br] ERRO: ORA-12514: client 8i

2016-08-24 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Bom dia Rogério,

 Estava pesquisando na documentação oficial da Oracle e segue o link
abaixo, conforme a versão do cliente utilizado no servidor de aplicação:

http://docs.oracle.com/cd/A84055_01/EE806DOC/doc/network.804/a58230/appc.htm

http://docs.oracle.com/cd/A84055_01/EE806DOC/doc/network.804/a58230/appb.htm#424125

Na documentação os parâmetros de failover não são suportados, provavelmente
o problema que esteja encarando seja essa incompatibilidade dos parâmetros
que não são suportados por essa versão do oracle cliente 8.0.6.

Qualquer dúvida estou a disposição.

Att,
Emerson S. Gaudêncio

Em 24 de agosto de 2016 10:19, Roger Camatini rogerio.camat...@gmail.com
[oracle_br]  escreveu:

>
>
> Bom dia Pessoal,
>
> Tenho o seguinte cenário:
>
> *Database produção:*
>
> BANNER
> 
> 
> Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit
> Production
> PL/SQL Release 11.2.0.4.0 - Production
> CORE11.2.0.4.0  Production
> TNS for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production
> NLSRTL Version 11.2.0.4.0 - Production
>
> *Database standby:*
>
> BANNER
> 
> 
> Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit
> Production
> PL/SQL Release 11.2.0.4.0 - Production
> CORE11.2.0.4.0  Production
> TNS for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production
> NLSRTL Version 11.2.0.4.0 - Production
>
>
> Estou recebendo esse erro em conexões ao banco após alteração da string de
> conexão (tnsnames.ora) das aplicações para suportar failover ou switchover
> de banco.
>
> SQL*Plus: Release 8.0.6.0.0 - Production on Qua Ago 24 10:16:43 2016
>
> (c) Copyright 1999 Oracle Corporation.  All rights reserved.
>
> ERRO:
> ORA-12514: Message 12514 not found;  product=RDBMS80; facility=ORA
>
>
> Informe o nome do usußrio:
>
> *Antiga string: (nesse formato conecta sem problemas)*
>
> xxxprd =
>   (DESCRIPTION =
> (ADDRESS = (PROTOCOL = TCP)(HOST = XXX)(PORT = 1521))
> (CONNECT_DATA =
>   (SERVER = DEDICATED)
>   (SERVICE_NAME = xx)
> )
>   )
>
> *Nova string: (nesse formato acontece o erro)*
>
> xxxprd =
>   (DESCRIPTION =
> (FAILOVER = ON)
> (LOAD_BALANCE = off)
> (ADDRESS = (PROTOCOL = TCP)(HOST = XXX)(PORT = 1521))
> (ADDRESS = (PROTOCOL = TCP)(HOST = XXXdg)(PORT = 1521))
> (CONNECT_DATA =
>   (SERVER = DEDICATED)
>   (SERVICE_NAME = xx)
> )
>   )
>
> As aplicações com erro utilizam forms/reports 6i e fazem uso do client 8i
> para conexão. Já setei os parametros "
> *SQLNET.ALLOWED_LOGON_VERSION_SERVER=8*","
> *SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8*" no arquivo sqlnet.ora dos
> servidores de banco, mas mesmo assim não houve sucesso.
>
> Não abri chamado pois sei que não há mais suporte para as ferramentas que
> são utilizadas nesse caso. Também já gloogei pra caramba e nada.
>
> Alguém já passou por algo parecido e que possa me dar uma luz na
> resolução. Sei que o correto seria estar tudo atualizado para versões mais
> atuais,
> mas sabem como é, nem tudo é perfeito nesse mundo.
>
> Atenciosamente,
>
> Rogério Camatini
>
> 
>


Re: [oracle_br] Importar dump do mysql no oracle

2016-08-22 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Bom dia Everson,

 Seria interessante você fazer o restore do dump do MySQL em um MySQL e
depois criar um dblink utilizando o Heterogeneous Services do Oracle
Database, segue abaixo link para efetuar a implementação:

http://dicasdothales.blogspot.com.br/2012/12/oraclemysql-criando-um-dblink-entre.html

https://docs.oracle.com/cd/B28359_01/server.111/b28277/toc.htm

https://oracle-base.com/articles/misc/heterogeneous-services-generic-connectivity

http://www.rstoever.com/2009/03/21/heterogeneous-services-oracle-linux-select-on-mysql/

Qualquer dúvida estou a disposição.
Att,
Emerson S. Gaudencio

Em 22 de agosto de 2016 10:28, Everson Piza eversonp...@hotmail.com
[oracle_br]  escreveu:

>
>
> Olá amigos,
>
> Um cliente me enviou um dump (.sql) de um banco mySql, e preciso importar
> ele no Oracle apenas para consulta.
>
> Alguém conhece alguma forma de fazer isso?
>
> Tenho oracle 10g, 11g e 12c aqui, posso importar em qquer um deles.
>
> Obrigado,
> Everson
>
> 
>


Re: [oracle_br] Re: Transparent Gateway

2016-07-21 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Bom dia Angelo,

 O Oracle Transparent Gateway for ODBC é livre para uso, já outros modelos
que possuem driver direcionado como por exemplo "Oracle Transparent Gateway
for MS SQL Server", "Oracle Transparent Gateway for DB2" já exigem
licenciamento, pois são produtos específicos para aplicações em ambiente de
produção visando melhor acesso aos dados, otimização da leitura dos
registro. Já a versão para ODBC é uma opção mais fica dependente da camada
do driver ODBC do servidor Linux, Windows, Aix
na qual está implementando está solução.

Link da documentação informando sobre licenciamento do Oracle Transparent
Gateway for ODBC:
https://docs.oracle.com/cd/E11882_01/license.112/e47877.pdf

http://docs.oracle.com/cd/E11882_01/gateways.112/e12070.pdf

Espero ter ajudado, Qualquer dúvida estou a disposição.
Att,
Emerson S. Gaudencio

Em 21 de julho de 2016 09:23, angelo angelolis...@gmail.com [oracle_br] <
oracle_br@yahoogrupos.com.br> escreveu:

>
>
> Bom dia,
>
> Só uma pergunta meio incrédula..  esse recurso do Oracle Transparent
> Gateway ele precisa ser adquirido a parte ?
>
> No SS o linked server o recurso é nativo mesmo na versao standard, basta
> que exista driver Oledb  correspondente ao banco que se deseja conectar
> para fechar o link. O resto é configuração.
>
>
> []s angelo
>
>
>
>
> 2016-07-20 18:59 GMT-03:00 jlchia...@yahoo.com.br [oracle_br] <
> oracle_br@yahoogrupos.com.br>:
>
>>
>>
>> Tudo jóia ?? Então, primeira coisa que vc tem que fazer é consultar a
>> nota metalink/My Oracle Support "OERR: ORA-28500 'connection from ORACLE to
>> a non-Oracle system returned this message:' Reference Note" (Doc ID
>> 50022.1) : ela lista Todos os principais bugs e issues conhecidas com o
>> Oracle Transparent Gateway for SQLSERVER, que é o produto que vc está
>> usando... Veja que ** muitos ** dos pontos citados são bugs no driver/na
>> camada de comunicação com o SS, cuja Solução é usar versão superior do TG :
>> caso isso não seja possível (suspeito que pra quem Ainda usa 10g tanto
>> tempo depois do decomissionamento Pode Ser o caso), veja as possibilidades
>> de work-around...
>>
>>  Afora isso, também existe (e Não é Pequena) a possibilidade de vc estar
>> OU estar Estourando colunas, ** principalmente ** se vc confia em conversão
>> automática entre datatypes Oracle x SQLSERVER, OU estar ultrapassando algum
>> default do driver na hora de transmitir dados OU (se o characterset do SS
>> ou do Oracle for multibyte) vc estar recebendo bytes a mais
>>
>>   Analise aí para ver qual/se alguma das possibilidades tá pegando aí pra
>> vc...
>>
>>   []s
>>
>>
>>Chiappa
>>
>
> 
>


Re: [oracle_br] Transparent Gateway

2016-07-20 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Boa Tarde Ednilson,

 O Campo que está enviando a informação para o BD MS SQL Server deve estar
estourando o tamanho do campo retornando o erro abaixo:

"ORA-28500: Connection from Oracle to a non-Oracle system returned this
message
[Transparent Gateway for MSSQL][A05B] The string is too long. Maximal
length is 1000"

, verifique o tamanho deste campo na tabela que está utilizando no MS SQL
Server assim aumentando o limite do campo ou efetuando um substring na
rotina dentro do Oracle para respeitar os limites do banco de dados de
destino no MS SQL Server.

Qualquer dúvida estou a disposição,
Att.
Emerson S. Gaudêncio

Em 20 de julho de 2016 15:48, 'Ednilson Silva' ednilson.si...@jbs.com.br
[oracle_br]  escreveu:

>
>
> Boa Tarde,
>
> Temos aqui um Oracle 10.2.0.5 tentando fazer um INSERT num Banco MSSQL e
> que passa por um Transparent Gateway, só que estou recebendo o erro abaixo
>
>
>
> ORA-28500: Connection from Oracle to a non-Oracle system returned this
> message
>
> [Transparent Gateway for MSSQL][A05B] The string is too long. Maximal
> length is 1000
>
>
>
> Alguém ideia de como posso resolver isso?
>
>
>
> Grato,
>
>
>
> Ednilson Silva
>
> 
>


Re: [oracle_br] Função Busca Fonética

2016-06-06 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Marcelo,

Sei que já existe essa procedure que trabalha usando a JVM do Oracle:

http://www.devmedia.com.br/sgbd-oracle-implementacao-de-funcao-para-fonetizacao-em-portugues/6300

Em 6 de junho de 2016 16:02, marcelo pereira da silva
marcelo...@yahoo.com.br [oracle_br]  escreveu:

>
>
> Boa tarde!
> Alguém conhece alguma função de busca fonética para nosso idioma que eu
> possa utilizar no Oracle?
>
> 
>


Re: [oracle_br] Ajuda - SQL

2016-04-07 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Boa Tarde Diego,

 Tenho uma função que faz a busca de parte de uma string que pode te
ajudar.

segue abaixo, o link:
http://blog.gaudencio.net.br/2015/11/oracle-funcao-para-retornar-partes-de.html


Em 7 de abril de 2016 14:57, Diego Melo diegopm...@gmail.com [oracle_br] <
oracle_br@yahoogrupos.com.br> escreveu:

>
>
> Olá galera, tudo bem ?
>
> Por gentileza, poderiam me ajudar em um SQL.
>
> Minha versão do Oracle é:
>
> Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
> PL/SQL Release 10.2.0.5.0 - Production
> "CORE 10.2.0.5.0 Production"
> TNS for Linux: Version 10.2.0.5.0 - Production
>
> Tenho uma tabela com uma string e diversos campos separados por | (pipe)
>
> Preciso trazer cada campo em uma coluna. Eu até consegui uma maneira, o
> problema é que quando um registro não tem o campo preenchido e a string
> traz ||, ai da ruim na minha solução. Detalhe, eu não posso atlerar a
> string original
>
> Alguém teria uma solução em Oracle SQL ??
>
> Fiz do seguinte modo:
>
>
> CREATE TABLE t_1 ( strings varchar2(4000));
> /INSERT INTO t_1VALUES ('99|151|JOANA PRADO |08227525490|BRA|0||');
> INSERT INTO t_1VALUES ('99|152|LUCIANA XIMENES SILVA||BRA|0||');
> INSERT INTO t_1VALUES ('99|153|JULIA ROBERTS|44303539805|USA|0||');
> COMMIT;
> SELECT regexp_substr(strings,'[^|]+',1,1) identificador,
>regexp_substr(strings,'[^|]+',1,2) id,
>regexp_substr(strings,'[^|]+',1,3) nome,
>regexp_substr(strings,'[^|]+',1,4) cpf,
>regexp_substr(strings,'[^|]+',1,5) pais,
>regexp_substr(strings,'[^|]+',1,6) tipoFROM t_1
>
>
>
> Reparem que o registro id 152 não tem cpf e ai o campo de pais acaba
> ocupando o espaço do CPF.
>
> Grato.
>
> Diego
>
>
>
> 
>


Re: [oracle_br] Como usar Webservice no oracle

2016-02-29 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Bom dia Junior,

 Segue abaixo, links com códigos de exemplo que implementam a comunicação
através de WS:

https://github.com/mortenbra/alexandria-plsql-utils/tree/master/ora

instalei o flex_ws_api e depois execute o script:

https://github.com/mortenbra/alexandria-plsql-utils/blob/master/demos/t_soap_envelope_demo.sql

Att,
Emerson S. Gaudêncio

2016-02-27 15:52 GMT-04:00 Junior roberjr_...@yahoo.com.br [oracle_br] <
oracle_br@yahoogrupos.com.br>:

>
>
> Boa tarde!
>
> Fiz a minha procedure utilizando essa como exemplo.
> O erro que tem me retornado o webservice é que os dados de entrada não
> foram encontrados.
> A empresa disse que o xml que estou enviando está chegando em branco para
> eles.
>
> A variável soap_request eu define como clob. Será que pode ser esse o
> problema ?
> Ou seria outra coisa que preciso verificar ?
>
> Desde já agradeço
>
>
> --To Keep server output parameter on
> set serveroutput on;--declaration
>   declare
>
>   soap_request varchar2(3);
>   soap_respond varchar2(3);
>   http_req utl_http.req;
>   http_resp utl_http.resp;
>
> --PL/SQL procedure
>   begin--Webservice request schema
>   soap_request:= '
>   http://schemas.xmlsoap.org/soap/envelope/;
>  xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance;
>    xmlns:xsd="
> http://www.w3.org/2001/XMLSchema; 
> xmlns:tns="http://www.webserviceX.NET/; >
>   
> 
>   USD
>   INR
> 
>
>   ';-- Set proxy details if no direct net connection.
>   --HTTP request
>   http_req:= utl_http.begin_request( '
> http://209.162.186.60:80/CurrencyConvertor.asmx'
>  , 'POST' , 'HTTP/1.1');--set
> authentication
> utl_http.set_header(http_req, 'Content-Type', 'text/xml;
> charset=utf-8');
>   utl_http.set_header(http_req, 'Content-Length', length(soap_request));
>   utl_http.set_header(http_req, 'SOAPAction', '
> http://www.webserviceX.NET/ConversionRate'
> );
>   utl_http.write_text(http_req, soap_request);
>   http_resp:= utl_http.get_response(http_req);
>   utl_http.read_text(http_resp, soap_respond);
>   utl_http.end_response(http_resp);
>   dbms_output.put_line(soap_respond);  end;
> /
>
>
> Em Sábado, 20 de Fevereiro de 2016 17:09, "Carlos Silva
> carlos-csi...@hotmail.com [oracle_br]" 
> escreveu:
>
>
>
> Boa tarde!
>
> Segue dois exemplos de como você pode criar sua rotina.
>
> http://www.oratable.com/utl_http/
>
> http://wiki.scn.sap.com/wiki/display/XI/Triggering+webservice+from+Oracle+Database+with+UTL_HTTP+supplied+package
>
>
> --
> To: oracle_br@yahoogrupos.com.br
> From: oracle_br@yahoogrupos.com.br
> Date: Sat, 20 Feb 2016 12:53:21 +
> Subject: [oracle_br] Como usar Webservice no oracle
>
>
>
> Bom dia Pessoal.
>
> Estou tentando usar Webservice no oracle.
>
> A idéia é consumir um arquivo xml via webservice. Pesquisei algumas coisas
> na internet porém está dando erro.
>
> Alguém teria algum exemplo ou se preciso configurar alguma coisa para
> poder utilizar o webservice ?
>
> Obrigado.
>
>
>
> 
>


Re: [oracle_br] Oracle "conversar" com Sql Server

2016-01-22 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Bom dia  Tathyana,

 Segue link de material:

http://raphaeloafernandes.blogspot.com.br/2013/08/heterogeneous-services-conectividade.html

http://eduardolegatti.blogspot.com.br/2009/07/abordando-o-uso-de-database-links-em.html

http://docs.oracle.com/cd/A87860_01/doc/server.817/a76960/hs_conce.htm

http://www.lamimdba.com.br/2015/10/conexao-oracle-com-ms-sql-server.html

Att,
Emerson

2016-01-22 10:53 GMT-03:00 Andre Luiz Reis Marques aandre...@yahoo.com.br
[oracle_br] :

>
>
> Bom dia Tatiana,
>
> Bem há duas soluções que posso passar para você.
>
> 1 - Criar no SQL Server um Linked Server.
> 2 - Essa solução e um pouco mais complicada, porem so quero te passar a
> possibilidade, ou seja, voce pode criar no SQL Server Integration Server
> (SISS)  um ETL e agendar no management studio (atraves de um pacote) o
> envio dos dados conforme a necessidade.
>
> Bem o agendamento pode ser feito nos dois casos, so nao sei a sua
> necessidade.
> Mas de imediato e so criar o Linked Server.
>
> Atenciosamente,
> André Luiz R. Marques
> Administrador de Banco de Dados - SQL Server/Oracle
> Tel: (21) 99978-4564
>
> *Evite imprimir. Colabore com o Meio Ambiente!*
>
> "Embora ninguém possa voltar atrás e fazer um novo começo, qualquer um pode
> começar agora e fazer um novo fim."
>*Chico Xavier*
>
>
>
> Em Sexta-feira, 22 de Janeiro de 2016 11:31, "Tathyanna Pelegrinni
> tathya...@gmail.com [oracle_br]"  escreveu:
>
>
>
> Oi, gente!!
>
> Alguem já precisou fazer com que o Oracle converse* com o Sql Server?
>
> No caso, Oracle se conectaria no Sql Server para transferir dados de uma
> tabela dele -Oracle- para uma tabela do Sql Server.
> Alguem!? rs..
>
>
>
> Valeu!!
>
>
> - TaThyanna
>
>
> 
>


Re: [oracle_br] Problema com o utl_http. Erro: ORA-12541: TNS:no listener

2015-12-11 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Boa Tarde Carlos,

Encontrei esse dois artigos com possíveis resoluções:

https://timnzblog.wordpress.com/2011/05/26/utl_http-and-ora-12541/

https://asktom.oracle.com/pls/asktom/f?p=100:11:::NO:RP:P11_QUESTION_ID:285215954607


Att,
Emerson

Em 11 de dezembro de 2015 14:13, Carlos Cesar Aparecido da Silva
carlos.sil...@jbsfoods.com.br [oracle_br] 
escreveu:

>
>
> Boa tarde, pessoal!
>
>
>
>  Tenho um serviço WEB no qual, processo um método POST.
>
>  Nossa equipe de rede já liberou o acesso *pela pagina desse*
> serviço e assim não tendo mais o bloqueio de proxy.
>
>  Quando processo minha rotina, algumas requisições vai e outras
> não.
>
>  Alguém sabe me informar como é feito esse serviço pelo banco 
>
>  Se o banco envia mesmo a pagina para executar a saída ou se
> utiliza o IP ...
>
>  Pergunto isso pq algumas requisições passa com o tipo de
> liberação já realizada  *pela pagina* . Será que teria que ser feito pelo
> IP?
>
>
>
> Att;
>
>
>
> 
>


Re: [oracle_br] Tabela Fragmentada

2015-11-25 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Boa Tarde Ednilson,

 Existe possibilidade de você particionar esta tabela em outros
tablespaces? Isso já ajudaria a leitura e escrita feita pelo Oracle no SO.

Segue abaixo, exemplo de implementação:
http://www.fabioprado.net/2011/02/criando-tabelas-particionadas-para.html

Att,
Emerson S. Gaudêncio

2015-11-25 13:44 GMT-03:00 'Ednilson Silva' ednilson.si...@jbs.com.br
[oracle_br] :

>
>
> Pessoal,
>
> Tenho uma tabela, que sofre muitos Updates/Inserts/Deletes, e gostaria de
> saber como posso estar fazendo uma manutenção nesta tabela afim de melhorar
> o desempenho nela?
>
>
>
>   NUM_ROWS TABLE_NAME  size (mb) actual_data (mb) wasted_space
> (mb)
>
> -- -- --  -
>
>  75886553 COM_NOTA_PRODUTO2255017948  4602
>
>
>
> SQL> select blocks "Blocos Usados",
>
>   2  empty_blocks "Blocos Livres",
>
>   3  num_rows "Total de Linhas"
>
>   4  from user_tables
>
>   5  where table_name='COM_NOTA_PRODUTO';
>
>
>
> Blocos Usados Blocos Livres Total de Linhas
>
> - - ---
>
>   28863852975886553
>
>
>
> SQL> SELECT * FROM DBA_TABLESPACES WHERE TABLESPACE_NAME='COMD';
>
>
>
> TABLESPACE_NAMEBLOCK_SIZE INITIAL_EXTENT NEXT_EXTENT
> MIN_EXTENTS MAX_EXTENTS   MAX_SIZE PCT_INCREASE MIN_EXTLEN STATUS
> CONTENTS  LOGGING   FORCE_LOGGING EXTENT_MANAGEMENT ALLOCATION_TYPE
> PLUGGED_IN SEGMENT_SPACE_MANAGEMENT DEF_TAB_COMPRESSION RETENTION   BIGFILE
> PREDICATE_EVALUATION ENCRYPTED COMPRESS_FOR
>
> -- -- -- ---
> --- --- --  -- -
> - - - - ---
> --  --- --- ---
>  - 
>
> COMD 8192
> 65536   1  2147483645 2147483645
> 65536 ONLINEPERMANENT LOGGING   NOLOCAL
>   SYSTEM  NO AUTO
> DISABLEDNOT APPLY   NO  HOST NO
>
>
>
> Oracle Database Enterprise 11g - (Release 11.2.0.4)
>
>
>
> Grato,
>
> Ednilson Silva
>
> 
>


Re: [oracle_br] Dúvida SQL - Select

2015-10-05 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Boa Tarde Miltão

Consegui resolver a parada da consulta aí:

SELECT tta.prateleira,
   CASE
  WHEN row_number()
   over(PARTITION BY tta.fruta_vermelha,
tta.prateleira ORDER BY tta.fruta_vermelha) = 1 THEN
   tta.fruta_vermelha
  ELSE
   NULL
   END fruta_vermelha,
   CASE
  WHEN row_number()
   over(PARTITION BY tta.fruta_amarela,
tta.prateleira ORDER BY tta.fruta_amarela) = 1 THEN
   tta.fruta_amarela
  ELSE
   NULL
   END fruta_amarela
FROM   (SELECT ff.prateleira, fruta_vermelha, fruta_amarela
FROM   feira_livre ff
LEFT   JOIN (SELECT (CASE
  WHEN ff.cor = 'Vermelha' THEN
   ff.prateleira
   END) AS prateleira,
   (CASE
  WHEN ff.cor = 'Vermelha' THEN
   ff.fruta
   END) AS fruta_vermelha
FROM   feira_livre ff) fv
ON fv.prateleira = ff.prateleira
LEFT   JOIN (SELECT (CASE
  WHEN ff.cor = 'Amarela' THEN
   ff.prateleira
   END) AS prateleira,
   (CASE
  WHEN ff.cor = 'Amarela' THEN
   ff.fruta
   END) AS fruta_amarela
FROM   feira_livre ff) fa
ON fa.prateleira = ff.prateleira
GROUP  BY ff.prateleira, fruta_vermelha, fruta_amarela) tta




Em 5 de outubro de 2015 07:43, Ricardo Tajiri rhtaj...@gmail.com
[oracle_br]  escreveu:

>
>
> Estou sem Oracle aqui, então sem jeito pra testar... Mas eu brincaria com
> o row_number(). Algo do tipo:
>
> select NVL(v.prateleira,a.prateleira), v.fruta, a.fruta from
> (select prateleira, fruta, cor, row_number() over (partition by prateleira
> order by fruta) rn
> from feira_livre where cor = 'Vermelha') v
> full outer join
> (select prateleira, fruta, cor, row_number() over (partition by prateleira
> order by fruta) rn
> from feira_livre where cor = 'Amarela') a on v.prateleira = a.prateleira
> and v.rn = a.rn;
>
>
>
>
> Ricardo Hideyuki Tajiri
>
> Em 2 de outubro de 2015 21:40, 'Schiavini' et...@schiavini.inf.br
> [oracle_br]  escreveu:
>
>>
>>
>> Se a quantidade de cores for predefinida, use pivot.
>>
>> Étore
>>
>> From: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
>> Sent: sexta-feira, 2 de outubro de 2015 16:17
>> To: oracle_br@yahoogrupos.com.br
>> Subject: [oracle_br] Dúvida SQL - Select
>>
>> Boa tarde amigos!
>>
>> Dados hipotéticos:
>>
>> select prateleira, fruta, cor from feira_livre;
>>
>> Prateleira Fruta Cor
>>
>> 1 Maçã Vermelha
>>
>> 2 Cereja Vermelha
>>
>> 1 Banana Amarela
>>
>> 2 Mamão Amarela
>>
>> 1 Morango Vermelha
>>
>> É possível eu montar um Select que me traga esse resultado?
>>
>> Prateleira Fruta_Vermelha Fruta_Amarela
>>
>> 1 Maçã Banana
>>
>> 1 Morango
>>
>> 2 Cereja Mamão
>>
>> Ou seja: juntei 2 frutas de cores diferentes no mesmo registro, por serem
>>
>> da mesma prateleira, mas elas não tem mais nenhuma relação entre si;
>>
>> Como tinham 2 vermelhas na mesma prateleira, eu joguei pro registro de
>> baixo.
>>
>> Se tivesse uma segunda fruta amarela na prateleira 1, ela também iria pro
>> segundo registro.
>>
>> Att,
>>
>> Image removed by sender.
>>
>> [As partes desta mensagem que não continham texto foram removidas]
>>
>>
> 
>


Re: [oracle_br] Dúvida SQL - Select

2015-10-02 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Olha esse exemplo aqui:


SELECT fa.prateleira,
   fruta_vermelha,
   fruta_amarela
FROM   (SELECT (CASE
  WHEN ff.cor = 'Vermelha' THEN
   ff.prateleira
   END) AS prateleira,
   (CASE
  WHEN ff.cor = 'Vermelha' THEN
   ff.fruta
   END) AS fruta_vermelha
FROM   feira_livre ff) fv
INNER  JOIN (SELECT (CASE
   WHEN ff.cor = 'Amarela' THEN
ff.prateleira
END) AS prateleira,
(CASE
   WHEN ff.cor = 'Amarela' THEN
ff.fruta
END) AS fruta_amarela
 FROM   feira_livre ff) fa
ON fa.prateleira = fv.prateleira
GROUP  BY fa.prateleira, fruta_vermelha, fruta_amarela

Em 2 de outubro de 2015 17:15, André Luiz aandre...@yahoo.com.br
[oracle_br]  escreveu:

>
>
> Você pode fazer é montar consulta abaixo:
> Vê se funciona.
>
> select case
>
>   When cor=amarela then a.prateleira
>  Esse b.prateleira,
>
> a.fruta as amarela, b.fruta as vermelha, from feira_livre a, fera_livre b
>
> Where a.cor=amarela and b.cor=vermelha
>
> Enviado do meu iPhone
>
> Em 02/10/2015, às 16:16, 'Milton Bastos Henriquis Jr.'
> miltonbas...@gmail.com [oracle_br] 
> escreveu:
>
>
>
> Boa tarde amigos!
>
>
> Dados hipotéticos:
>
> select prateleira, fruta, cor from feira_livre;
>
> Prateleira   Fruta   Cor
> 1   Maçã Vermelha
> 2   CerejaVermelha
> 1   Banana   Amarela
> 2   MamãoAmarela
> 1   Morango   Vermelha
>
>
> É possível eu montar um Select que me traga esse resultado?
>
>
> PrateleiraFruta_Vermelha   Fruta_Amarela
> 1Maçã  Banana
> 1Morango
> 2Cereja Mamão
>
>
> Ou seja: juntei 2 frutas de cores diferentes no mesmo registro, por serem
> da mesma prateleira, mas elas não tem mais nenhuma relação entre si;
>
> Como tinham 2 vermelhas na mesma prateleira, eu joguei pro registro de
> baixo.
> Se tivesse uma segunda fruta amarela na prateleira 1, ela também iria pro
> segundo registro.
>
>
>
>
> Att,
>
>
>
> 
>


Re: [oracle_br] Re: [mysql-br] [Off-Topic] - Ferramenta para Dashboards

2015-09-01 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Professor Martins,

 O Jasper Server Reports é um servidor de repositórios de relatórios
desenvolvidos pelas ferramentas Jasper Studio ou Ireport(conhecida por ser
uma ferramenta integrante do netbeans para desenvolvimento em Java). Os
relatórios desenvolvidos que ficam no Jasper Server report conectam em
diversas bases de dados, por seu padrão de conexão é em JDBC, assim dando
suporte para vários bancos de dados open source e comerciais. É possível
utilizar os filtros do relatório na própria tela de execução do relatório e
exportar o relatório para diversos formatos sendo eles (PDF, DOC, Excel,
CSV, RTF, ODT, ODS ). A Liberdade de Desenvolvimento no Jasper é
independente por plataforma, pois seu motor é em java, nisso podemos
utilizar ele tanto em linux, quanto em windows.

Se quiser tirar mais alguma dúvida, estou a disposição.

Att,
Emerson

Em 1 de setembro de 2015 10:40, Emerson Martins emersonmarti...@gmail.com
[oracle_br]  escreveu:

>
>
> Olá Vitor.
>
> Apenas de Regra de Negócio mesmo.
>
> Att,
>
> Emerson Martins
> DBA Oracle
> Oracle 11g Certified Associate
> *Contatos:*
> + 55 82 91235504 /
> + 55 82 81702325
>
> Em 1 de setembro de 2015 11:05, Vitor Junior vitorj...@gmail.com
> [mysql-br]  escreveu:
>
>>
>>
>> São reports e dashboards de regras de negócio ou de performance?
>>
>> Em ter, 1 de set de 2015 às 11:05, Emerson Martins
>> emersonmarti...@gmail.com [mysql-br] 
>> escreveu:
>>
>>>
>>>
>>> Olá pessoal.
>>>
>>> Aqui na empresa usamos o glpi com mysql e atualmente estamos utilizando
>>> consultas através de ODBC no Excel para gerar alguns relatórios.
>>>
>>> Então e ai que vem o Off-topic.
>>>
>>> Alguém conhece alguma ferramenta free que seja boa para gerar relatórios
>>> ou dashboards,etc.
>>>
>>> Agradeço os que puderem ajudar.
>>>
>>>
>>> Att,
>>>
>>> Emerson Martins
>>> DBA Oracle
>>> Oracle 11g Certified Associate
>>>
>>> --
>> Att,/Regards,
>>
>>
>> Vitor Jr.
>> Infraestrutura / Infrastructure Team
>>
>> Oracle 12c DBA Certified Professional - OCP 12c
>> Oracle 11g DBA Certified Professional - OCP 11g
>> Oracle Certified Expert, Oracle Real Application Clusters 11g and Grid
>> Infrastructure Administrator - OCE
>> Oracle Database 11g Performance Tuning Certified Expert - OCE
>> Oracle Exadata 11g Certified Implementation Specialist
>> Oracle Certified Associate, MySQL 5
>> mail, gtalk e msn: vitorj...@gmail.com
>> http://certificacaobd.com.br/
>> skype: vjunior1981
>> https://mybizcard.co/vitor.jr.385628
>>
>>
> 
>


Re: [oracle_br] Perda desempenho pos upgrade

2015-08-27 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Paulo, mesmo sendo algo pontual, seria interessante atualizar o cliente da
Oracle utilizado por essa aplicação da TOTVS, para o cliente do Oracle 11g.

Att,
Emerson
Em 27/08/2015 21:03, Fabricio Pedroso Jorge fpjb...@gmail.com [oracle_br]
oracle_br@yahoogrupos.com.br escreveu:



 Recomendo a você recoletar as estatísticas dos Fixed Objects. Veja:


 https://blogs.oracle.com/optimizer/entry/fixed_objects_statistics_and_why

 Também não custa atualizar as estatísticas do sistema, já que o SO também
 foi atualizado.


 https://oracle-base.com/articles/misc/cost-based-optimizer-and-database-statistics

 Em 27 de agosto de 2015 19:21, Paulo Couto paulopcto2...@yahoo.com.br
 [oracle_br] oracle_br@yahoogrupos.com.br escreveu:




 Pessoal, neste ultimo final de semana realizei o upgrade de minha base de
 produção oracle da versão Standard 10.2.0.4 para versão Standard ONE
 11.2.0.3 64 bits, também fiz na sequencia upgrade do Windows 2003 EE para
 Windows 2008 EE 64 bits.  Todo o processo ocorreu em normalidade sem falhas.

 Antes porém, durante quase 30 dias todos usuários validaram as aplicações
 em ambiente QAS criado a partir de um clone do antigo produção e feitas as
 mesmas atualizações na mesma sequencia. Neste ambiente os usuários
 documentaram os testes e não encontraram problemas.

 Mas como tudo não é perfeito, no pós upgrade, usuarios de uma unica
 aplicação reclamaram de perda de performance em rotinas e relatorios
 especificos desta aplicação (PIMS PI da empresa TOTVS)
 Os demais usuários de outras aplicações não relataram problemas,
 inclusive com rotinas também pesadas.

 A principio fiz um rebuild das tabelas mais usadas, existe um com 25
 milhoes de registo que é a campeã do schema user. Executei também o
 DBMS_STAT GATHER  em todas as tabelas, apesar do rebuild já recria-las.

 No primeiro dia melhorou mas no outro dia voltou ao mesmo problema,
 enfim, tentei o rebuild novamente mas continua com o mesmo problema.

 Analisando a execução pelo Enterprise Manager não encontrei nada que
 pudesse explicar, tipo TABLE SCAN etc... Está aplicação escrita em Delphi
 ou Centura, usa o aplicativo BDE da Borland configurado em cada computador
 que acessa o sistema.

 Gostaria de vossas opiniões com dicas onde posso concentrar a busca para
 a perda de performance.

 Nota: fiz o upgrade via DBUA seguindo o documento da Oracle que trata do
 upgrade para versão 11.2

 Abs,

 Paulo.




 --
 *Fabrício Pedroso Jorge.*

 Administrador de Banco de Dados

 certificacaobd.com.br http://certificacaodb.com.br

 *Resumo Profissional:*
 http://br.linkedin.com/in/fabriciojorge

 *Contatos:*
 + 55 91 988991116
 skype: fabricio.pedroso.jorge
 fpjb...@gmail.com
 



Re: [oracle_br] Re: [oracle_br] Bind Variables na cláusula IN

2015-08-19 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Pessoal,

Investi um pouco meu tempo para buscar uma solução legal e cheguei nessa
conclusão:

--- CRIAÇÃO DA TYPE PARA USO DE COLEÇÃO --
CREATE OR REPLACE TYPE t_id IS TABLE OF NUMBER;
/

-- CRIAÇÃO DE FUNCTION PARA TRATAR A LISTA ENVIADA --
CREATE OR REPLACE
FUNCTION fnc_gera_lista(lista   VARCHAR2,
   delimitador VARCHAR2) RETURN t_id IS
  v_id t_id;
   BEGIN
  SELECT regexp_substr(REPLACE(lista, delimitador, ','),
   '[^,]+',
   1,
   LEVEL) AS lista
  BULK   COLLECT
  INTO   v_id
  FROM   dual
  CONNECT BY regexp_substr(REPLACE(lista, delimitador, ','),
   '[^,]+',
   1,
   LEVEL) IS NOT NULL;
  RETURN v_id;
END;
/

---
EXEMPLO DE UTILIZAÇÃO:

SELECT *
FROM   TBCARGO C
WHERE  C.CARGOID IN
   (SELECT COLUMN_VALUE AS LISTA
FROM   TABLE(FNC_GERA_LISTA(';22;19;30;35;40;60;71;92;', ';')));

SELECT COLUMN_VALUE AS LISTA
FROM   TABLE(FNC_GERA_LISTA(';22;19;30;35;40;60;71;92;', ';'));

Fica a dica aí...

Att,
Emerson S. Gaudêncio

Em 19 de agosto de 2015 09:26, Eduardo Perdomo panc...@gmail.com
[oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 A aplicação tem que tratar isso e montar o SQL de acordo. Valores string
 com aspas e separados com virgulas. Valores numéricos sem aspas e TB
 separados por virgula.
 Em 19/08/2015 09:54, Paulo emlis...@emanager.com.br [oracle_br] 
 oracle_br@yahoogrupos.com.br escreveu:



 Bom dia.

 Isso ai, era assim mesmo que usava, mas como eu disse, já faz um certo
 tempo(ou muito tempo) que usei,
 e com certeza não me lembrava mais como era. É realmente não é muito
 bonito mas na época resolveu.

 Abraço Andre.

 Att,

 Paulo





 Em 18/08/2015 16:47, Andre Santos andre.psantos...@gmail.com [oracle_br]
 escreveu:


 Paulo

 Isso que você comentou, é bem provável que tenha sido feito com LIKE (ao
 invés do operador IN).
 Partindo do seu exemplo: ... codfornec in ('#22#19#30#35#40#')
 Seria algo +/- assim: ... '#22#19#30#35#40#' LIKE '%#' || codfornec ||
 '#%'

 Mas pagaria um preço em performance e escalabilidade... talvez ficando
 inviável, dependendo do contexto.

 [ ]'s

 André


 Em 18 de agosto de 2015 15:11, jlchia...@yahoo.com.br [oracle_br] 
 oracle_br@yahoogrupos.com.broracle_br@yahoogrupos.com.br escreveu:



 Paulo, essa sintaxe de valores separados por # ** COM CERTEZA ** não é
 aceita pelo RDBMS Oracle, que é o tópico-fim aqui do grupo - isso parece
 coisa de postgre... afaik no RDBMS Oracle é mesmo OU se ter os valores numa
 tabela e usar sub-query OU se escrever uma proc que abra os valores
 dentro da string, cfrme mostrei em msg anterior...

  []s

 Chiappa

  OBS : me recuso a usar porquices tipo montar um SQL dinâmico com os
 valores extraídos da string separada por vírgula, então nem comento essa
 possibilidade...



 



Re: [oracle_br] [off topic] Pesquisa rápida com os DBAs do grupo

2015-08-12 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Bom dia Fabio,

 Meu caso é A e D.

Att,
Emerson S. Gaudencio


Em 11 de agosto de 2015 16:10, Fábio Telles Rodriguez fabio.tel...@gmail.com
[oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Senhores, quem puder responder em PVT ou aqui na lista, eu agradeço. A
 questão que eu quero abordar rapidamente é como as pessoas se tornam um DBA
 na sua carreira de TI.

 Responda, como iniciou sua carreira de DBA???

 A) Eu era um sysadmin e precisavam de alguém para cuidar do banco de dados
 XPTO na empresa.
 B) Eu era um desenvolvedor e precisavam de alguém para cuidar do banco de
 dados XPTO na empresa.
 C) Eu era o gestor de um grupo de TI, e precisavam de alguém para cuidar
 do banco de dados XPTO na empresa.
 D) Eu já gostava de banco de dados e direcionei minha carreira para isso
 E) Outros: qual?

 --
 Atenciosamente,
 Fábio Telles Rodriguez
 blog: http:// http://www.midstorm.org/~telles/s
 http://tellesr.wordpress.com/avepoint.blog.br
 e-mail / gtalk / MSN: fabio.tel...@gmail.com
 Skype: fabio_telles

 Timbira - A empresa brasileira de Postgres
 http://www.timbira.com.br

 



Re: [oracle_br] ORA-29540 - Classe Java não encontrada

2015-04-23 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Bom dia Milton,

Foi executado os Grants informados no site:

http://plsqlexecoscomm.sourceforge.net/plsqldoc/os_command.html

para a utilização do OS_COMMAND?

Att,
Emerson

Em 23 de abril de 2015 11:04, 'Milton Bastos Henriquis Jr.'
miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Bom dia amigos!

 Preciso de ajuda

 Não tenho senha de SYS nem SYSTEM na base do cliente - então as tarefas
 que exigem essas conexões eu repasso para o DBA do cliente.

 Pedi pra ele instalar esse pacote:

 http://plsqlexecoscomm.sourceforge.net/

 Pra quem não conhece, é uma package que utiliza de classes Java para
 executar comandos do sistema operacional através de chamada PL/SQL.

 Beleza, o DBA instalou esse pacote no SYS.

 Ao executar a minha store procedure, retorna esse erro:

 ORA-29540: class ExternalCall does not exist
 ORA-06512: at SYS.OS_COMMAND, line 68

 Lembrando que a package foi instalada como SYS, mas eu estou chamando a
 procedure que está no usuário USER01.
 Foi dado grant (segundo o DBA) de execute na package SYS.OS_COMMAND para o
 USER01.

 Precisaria dar mais algum tipo de grant para o USER01 conseguir chamar
 essa classe Java?


 Att,



   



Re: [oracle_br] off-topic - instalacao client oracle

2015-03-26 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Boa Tarde Angelo,

 Quando a aplicação é java, geralmente o driver utilizado é o JDBC da
oracle, veja qual o client do Jdbc homologado para esta aplicação e depois
faça o download do driver jdbc referente a versão homologação de coloque na
pasta tomcat/lib no servidor do tomcat.

Segue abaixo , link para download de driver jdbc oracle:
http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html

Att,
Emerson

Em 26 de março de 2015 15:59, angelo angelolis...@gmail.com [oracle_br] 
oracle_br@yahoogrupos.com.br escreveu:



 Boa tarde

 Apesar de eu, trabalhar com Oracle, nao tenho muita experiencia em
 instalar client do Oracle em maquina Linux... ate pq aqui na empresa, 99% é
 tudo windows.

 Daí, existe uma instalacao de um sistema de terceiro (mastersaf ecf,
 alguém conhece?) que utiliza Java, Tomcat e o fornecedor pediu pra que
 fosse colocado o cliente do Oracle nessa maquina..
 Sobrou pra mim essa tarefa.. e vou fazer..


 Mas observei que:

 ela nao tem o banco instalado, é apenas o servidor da aplicacao... só
 necessario o client mesmo.

 Tem muita diferença o client 32 para o 64 nao tem ? Tem algum lance de
 glibc que precisa ser instalado nao é isso ? Até pedi pra ele me passar por
 email qual versao precisa

 O servidor é um Centos 6  e o cliente que pretendo instalar é 11g


 []s

 angelo

  



Re: [oracle_br] update em campo de tabela com base em campo de outra

2015-03-20 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Bom dia Erisvaldo,


 Com PL/SQL é possivel resolver isso, veja o exemplo abaixo:

Begin
for rc1 in ( select * from tabela_a) loop

update tabela_b b set b.valor = rc1.valor where b.codigo = rc1.codigo;

end loop;
Commit;
End;


Essa é umas das formas de atualizar valores correspondentes.
Att,
Emerson


Em 19 de março de 2015 22:30, erisva...@ymail.com [oracle_br] 
oracle_br@yahoogrupos.com.br escreveu:



 Ola a todos!


 Pessoal, queria saber como faço pra atualizar os dados de registros em uma
 tabela com base em registros de outra.


 exemplo: tenho uma tabela x com as colunas codigo e preço e tenho uma
 tabela y

 que tem os mesmos campos.

 quero atualizar os preços da tabela y com os preços da tabela x.

 codigo a codigo eu consigo, mas queria saber como faço pra percorrer toda
 a

 tabela atualizando todos os preços de uma vez.


 Atc,

 Erisvaldo



  



Re: [oracle_br] Re: Executar comando do sistema operacional

2015-03-16 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Milton,

 A utilização do runas é somente para usuários que estão logados
interativamente no Sistema Operacional. Nisso como vc disse que não
consegue logar com o oracle, seria impossível vc utilizar o runas para
salvar as credencias, pois as credenciais ficam gravadas na sessão
interativa utilizada no windows. Acredito que a solução paliativa que te
passei utilizando um software de terceiro para conseguir utilizar o runas
informando usuário e senha é uma das saídas possíveis destes problema, já
que a limitação não está envolvendo o Banco de dados Oracle e sim o SO
Windows. Agora fica a seu critério.

Att,
Emerson S. Gaudencio

Em 14 de março de 2015 16:26, 'Milton Bastos Henriquis Jr.'
miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Chiappa, entendi parcialmente, mas acho que vc não entendeu o que eu quis
 dizer!

 O que eu quis dizer no meu e-mail anterior foi o seguinte, vou
 exemplificar, vamos supor que eu tenha:

 oracle - usuario owner do RDBMS
 print_user - usuario criado para rodar o comando de impressao (com senha
 que nunca vai mudar) e com permissões necessárias para acessar as
 impressoras compartilhadas na rede
 milton - meu usuario de rede

 A minha intenção era:
  - dentro do meu PL/SQL eu chamaria o runas, passando o usuario e senha do
 usuario print_user, para executar o .BAT - ok
  - ao fazer isso, a partir do usuario oracle eu executo o runas pra
 rodar o comando como se fosse o print_user - ok
  - se eu executar uma vez manualmente, eu escreveria a senha de forma
 interativa e partir das seguintes não precisaria mais - ok
  - aí vem minha dúvida: para executar essa primeira vez, eu não teria que
 estar LOGADO com o usuario oracle para executar o comando runas passado o
 print_user/senha? isso eu não consigo fazer, pois o windows não me deixa
 logar como oracle! Se eu executar o runas logado como milton, passando
 print_user/senha, e depois tentar executar via PL/SQL (ou seja, via usuario
 oracle), continua valendo a senha qe ficou gravada para login no runas? ou
 só fica valendo pra eu continuar executando como milton?






 Att,




 Em 13 de março de 2015 18:17, jlchia...@yahoo.com.br [oracle_br] 
 oracle_br@yahoogrupos.com.br escreveu:



 Veja bem :  a idéia NÃO É (repito,  Não È  ) vc passar pro RUNAS
 esse usuário dono do RDBMS com o qual vc não consegue logar, mas SIM ter um
 usuário Windows local (chamado JOAOZINHO, ou outro nome qualquer) que SEJA
 capaz de logar, usuário esse previamente criado e permissionado E que não
 mude a senha nunca, aí apenas uma vez vc ou alguém no cliente executa
 manualmente o .BAT informando a senha desse usuário e cabou : nas próximas
 vezes que esse .BAT for executado pela rotina java que chama executáveis ,
 a senha JÁ VAI estar armazenada, ao que entendo ele NÂO VAI pedir de novo,
 okdoc ?? É isso ... ÓBVIO que se o usuário sob o qual o RDBMS roda não é um
 usuário local com privilpégio de logon (o que vc NÂO nos confirmou ainda,
 by the way!!! veja lá !!) não tem como vc logar com ele pra executar a
 primeira vez...

  E uma obs importante : ao que entendo, quando o usuário quer imprimir um
 arquivo Y, o Sistema cria um .BAT assim :

  copy /b Y.arq ipdaimpressora

  depois, se o usuário quer imprimir um arquivo X.nnn , ele cria um OUTRO
 bat com  :

  copy /b X.nnn ipdaimpressora

  assim por diante, e por isso como o .BAT muda a cada execução vc não
 teria como executar manualmente a primeira vez Coisas como ter um outro
 .BAT fixo chamando o segundo .BAT de impressão , que seria recriado a cada
 vez com o novo conteúdo mas MANTENDO sempre o mesmo nome, como indicado por
 outro colega, são  SIM possíveis mas imho desnecessárias : isso de criar um
 .BAT novo a cada vez com uma única diferença NÂO FAZ o menor sentido, por
 que vc não tem um único .BAT fixo que aceita o nome do arquivo como
 argumento, tipo :

  -- este .BAT único se chama IMPRIME.BAT
  copy /b %1 ipdaimpressora

  e aí para imprimir o arquivo Y.arq vc chama o .BAT com :

  CMD.EXE /C \caminho\IMPRIME.BAT Y.arq

  depois pra imprimir o arquivo X.nnn vc chama o mesmo .BAT com :

  CMD.EXE /C \caminho\IMPRIME.BAT X.nnn

  e assim por diante, okdoc ???

   []s

 Chiappa


  



Re: [oracle_br] Re: Executar comando do sistema operacional

2015-03-13 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Boa Tarde Milton,

Existe uma opção no windows de executar comandos com outras credencias de
acesso, chamada runas, segue abaixo link de como utilizar isso:

http://www.cooperati.com.br/2013/03/01/executando-programas-com-credenciais-de-administrador/

http://projetoseti.com.br/executar-programas-atraves-do-comando-runas-savecred/

https://social.technet.microsoft.com/Forums/windows/pt-BR/3c1d0880-e170-40a0-b217-0757e0685064/como-executar-um-programa-com-permisses-administrativas?forum=winxppt

Bom, podendo utilizar outro usuário no caso o usuário que vc está
utilizando para executar a chamado com o runas através do cmd, seria
possível amenizar essa situação, com este paliativo.

Att,
Emerson

Em 13 de março de 2015 13:37, jlchia...@yahoo.com.br [oracle_br] 
oracle_br@yahoogrupos.com.br escreveu:



 Opa, então : como eu falei antes, se o roda sob um account x e vc tá
 logado sob um account y, ** obviamente ** vc não está testando Coisa Alguma
 quando, logado no Windows como y, executa o script .BAT e obtém sucesso,
 yep  Sem isso é Claro que vc não vai conseguir testar adequadamente,
 até coisas básicas como um ping pro IP da impressora TEM que serem feitas
 num prompt de comando logado com o tal usuário...   E é claro, enquanto vc
 não conseguir logar como esse usuário para poder testar os acessos dele, **
 ainda ** é Plenamente Possível que o que esteja pegando aí pra vc é mesmo a
 questão de PRIVILÉGIOS concedidos ao account Windows que executa o RDBMS,
 pois é com esse account que o java e/ou qualquer binário do RDBMS é
 executado por sua vez, ALTAS chances de que realmente simplesmente o tal
 account não tenha acesso ao IP/serviço da impressora em questão...

 = O que vc deve fazer aí é, eu acho :

 1. CONFIRMAR de uma vez por todas se REALMENTE é mesmo um usuário local
 nominado : apesar do que o tal técnico te disse, eu acho BEM difícil que
 seja isso, pois o default da instalação do RDBMS é usar a conta de sistema
 local (Local System Account) , e essa conta (que *** não *** é criada pelo
 instalador nem pelo RDBMS) aí sim realmente é uma conta Windows interna,
 absolutamente não-privilegiada, incapaz de conectar e/ou de abrir sessão
 interativa... Para vc confirmar isso é fácil : conectado como um usuário
 administrador nesse servidor, execute o servlet de serviços (services.msc)
 e veja na aba de logon do serviço OracleServicennn como que ele loga, e
 também consulte o servlet de administração do computador local (normalmente
 se chama compmgmt.msc mas esse nome pode variar de acordo com versão/edição
 do Windows, veja lá) e aí abra a seção de usuário Locais, e veja o que vc
 vai ver...
   Se o cara não sabe nem fazer isso, peça que alguém habilitado seja
 chamado, plz...

 2. SE for identificado que realmente o RDBMS tá rodando com account
 interno/do sistema, OU então com usuário não-local, até dá pra alterar isso
 criando-se um usuário local e o incluindo no grupo de DBAs (via servlet de
 administração local, ainda) e alterando na aba de LOGON dos serviços
 relacionados ao RDBMS para usar esse novo usuário, mas isso IMPLICA em
 algum risco operacional E em shutdown e restart do RDBMS, nem sempre isso é
 possível/aceitável... SE for identificado que é DE VERDADE um account local
 do Windows mesmo, desde que não hava DIRETIVAS DE REDE/policies proibindo
 para que um usuário local possa se logar basta que ele esteja membro de um
 Grupo de usuário não de sistema, como o próprio grupo usuários...

 3. Validar as outras opções de acesso á impressora de rede : na msg
 anterior eu dei um link de exemplo com o PL/SQL acessando o serviço de
 impressão via rede através das packages de rede disponíveis no RDBMS
 inclusive para o PL/SQL, o Angelo sugeriu que estar compartilhado sem
 usuário senha como é hoje, talvez se possa compartilhar o recurso da
 impressora com um usuário/senha específico que nunca mude Ou ainda,
 para tentar eliminar a questão de privilégios, talvez vc possa testar a
 possibilidade de rodar no .BAT o tal comando de COPY com o RUNAS,
 utilitário nativo do Windows que permite se executar algo com um account
 diferente...

  Não vou poder te dar um exemplo concreto de nenhuma dessas opções já que
 não tenho impressora de rede sob Windows em nenhum dos ambientes a que
 atualmente tenho acesso, mas tente aí...

   []s

 Chiappa
  



Re: [oracle_br] Re: Executar comando do sistema operacional

2015-03-13 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Milton,

No TechNet da Microsoft existe um software de terceiro que possibilita
utilizar o runas com usuário e senha.

Segue abaixo, modelo:

Você pode usar o comando RUNAS para abrir o internet explorer

runas /user:dominio\usuario c:\Arquivos de programas\Internet
Explorer\iexplore.exe

O problema do comando acima, é que ele pede a senha. Mas tem uma solução
para isso nos links abaixo:

*http://www.commandline.co.uk/sanur/* http://www.commandline.co.uk/sanur/

*http://www.commandline.co.uk/sanur_unsupported/index.html*
http://www.commandline.co.uk/sanur_unsupported/index.html

O segundo link explica como utilizar... mas vai ficar assim:

runas /user:domínio\usuário C:\Arquivos de programas\Internet
Explorer\iexplore.exe | sanur senha_do_usuario



Link para pesquisa:

https://social.technet.microsoft.com/Forums/pt-BR/7512f27a-a433-45d5-a707-ef3d0074b316/comando-runas?forum=winxppt


Att,

Emerson



Em 13 de março de 2015 15:43, 'Milton Bastos Henriquis Jr.'
miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Pelo agendador não pode ser... os usuário imprimem no ato.
 Apertou um botão no sistema, sai a etiqueta na impressora.

 Até porque o arquivo .bat é escrito em tempo de execução, por isso teria
 que fazer uma alteração muito grande no sistema pra funcionar dessa maneira!



 Att,




 Em 13 de março de 2015 16:41, angelo angelolis...@gmail.com [oracle_br] 
 oracle_br@yahoogrupos.com.br escreveu:



 Sabe o agendador de tarefas do windows ?

 Faz exatamente isso e ainda salva a senha da conta para fazer a
 execução. (pronto, agora vira gambiarra...)

 Que que eu ia propor: criar uma tarefa e agendar a execucao, do bat a
 partir do taskscheduler

 Haveria um agendamento da frequencia de execucao desse bat, mas mandaria
 alguma coisa pra impressora, caso tenha.
 Depois que imprime faz o que? apaga o arquivo ? senao ia mandar impressao
 toda hora da mesma etiqueta



 2015-03-13 16:34 GMT-03:00 'Milton Bastos Henriquis Jr.'
 miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br:



 Exatamente Angelo, eu já tinha testado essa idéia, ele não deixa



 Att,




 Em 13 de março de 2015 16:32, angelo angelolis...@gmail.com [oracle_br]
 oracle_br@yahoogrupos.com.br escreveu:



 Ih, acabei de comentar.. minha sugestao vai morrer na praia também...
 nao me liguei que o runas era interativo

 Entao precisa arranjar um aplicativo do tipo  Runas mas que rode em
 silent mode e que passe a senha junto. Ai iria matar a charada...



 2015-03-13 16:29 GMT-03:00 'Milton Bastos Henriquis Jr.'
 miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br:



 Então Emerson, o problema é que não tem como eu digitar essa senha na
 primeira vez... rs
 Eu precisaria enviar a senha pelo script!

 Eu não vou executar o comando manualmente... o sistema é que vai
 chamar o script, por isso não tem como eu digitar a senha!




 Att,




 Em 13 de março de 2015 16:26, ederson200...@yahoo.com.br [oracle_br] 
 oracle_br@yahoogrupos.com.br escreveu:



 Olá Milton,

 No segundo link que o Emerson passou, abaixo do ultimo slide tá
 explicando que pede a senha somente uma vez.

 Então vc roda uma vez no modo interativo, informa a senha e depois o
 mesmo script não pede mais a senha.

 Em tempo: runas é acrônimo de RUN AS.


 Ederson Elias
 DBA Oracle - http://br.linkedin.com/pub/ederson-elias/24/8b/8b0
  Labor improbus omnia vincit






  



Re: [oracle_br] Estouro de processos

2014-12-02 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Rogério,

Quantas aplicações estão conectando neste banco de dados?

Algumas destas aplicações teve alguma atualização recente?

Att,
Emerson

2014-12-02 13:03 GMT-03:00 Roger Camatini rogerio.camat...@gmail.com
[oracle_br] oracle_br@yahoogrupos.com.br:



 Boa tarde Senhores,

 Tenho uma instancia de homologação que tem apresentado problema de estouro
 de processes.

 SQL show parameter proce

 NAME TYPEVALUE
  ---
 --
 aq_tm_processes  integer 1
 cell_offload_processing  boolean TRUE
 db_writer_processes  integer 1
 gcs_server_processes integer 0
 global_txn_processes integer 1
 job_queue_processes  integer 1000
 log_archive_max_processesinteger 4
 processesinteger 1000
 processor_group_name string
 SQL

 Não achei nada de anormal no alertlog.

 Executando o comando a seguir tenho a saida:

 oracle@hostname:/oracle ps -ef | grep homol11 | grep -v grep | wc -l
  991
 oracle@hostname:/oracle ps -ef | grep homol11
   oracle  26216481   0 01:00:58  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle  33423601   0 13:32:16  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle  46531141   0 06:31:33  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle  55051741   0 09:31:53  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle  57674121   0 09:01:48  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle  59639801   0 01:01:00  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle  66192021   0 13:54:12  -  0:00 oraclehomol11
 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
   oracle  70780641   0 16:59:01  -  0:00 ora_qmnc_homol11
   oracle  72090501   0 02:31:09  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle  75368781   0 00:00:32  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle  76022961   0 02:31:09  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle  78645101   0 08:31:46  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle  79954761   0 06:31:33  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle  80609381   0 08:01:42  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle  82576881   0 11:02:00  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle  83887161   0 04:01:19  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle  85197301   0 10:01:54  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle  87819121   0 11:32:04  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle  92407861   0 09:31:53  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle  95029441   0 05:31:28  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle  98305921   0 04:01:20  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle  99615761   0 13:02:15  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle 106169501   0 00:00:14  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle 110756141   0 09:01:49  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle 116000341   0 07:31:40  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle 117311201   0 08:01:44  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle 120588241   0 01:00:59  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle 121897221   0 05:31:27  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle 125174661   0 12:02:07  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle 131073781   0 09:01:49  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle 138936961   0 08:31:46  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle 140248541   0 11:02:02  -  0:00 oraclehomol11
 (LOCAL=NO)
   oracle 140902801   0 03:31:17  -  0:00 oraclehomol11
 (LOCAL=NO)
   ..
   ..
   ..
 Pessoal mais experiente poderia me dar um norte de onde começar a procurar
 o que está causando o problema?

 Informações da máquina e banco:

 Banco
 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit
 Production
 PL/SQL Release 11.2.0.4.0 - Production
 CORE11.2.0.4.0  Production
 TNS for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production
 NLSRTL Version 11.2.0.4.0 - Production

 SO
 AIX hostname 1 7 00C5B60E4C00
 Versão do AIX : 7100-03-03-1415

 Atenciosamente,
 Rogério Camatini.

  



Re: [oracle_br] Performance

2014-10-15 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Gustavo,

 tenta identificar os Sql´s que estão gerando estes picos no seu EM.

Segue abaixo, link para auxiliar na identificação das consultas que estão
penalizando seu banco de dados:

http://blog.gaudencio.net.br/2013/10/oracle-identificando-sql-problematico.html

Att,
Emerson

Em 15 de outubro de 2014 09:07, Gustavo gust.goul...@yahoo.com.br
[oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Senhores, bom dia!

 Alguem aqui na lista poderia indicar alguns metodos para identificar o
 motivo e como corrigir a lentidão que esta acontecendo no meu DB ?

 Na verdade é mais na aplicação, e só em uma parte dela. Quando o usuário
 loga na aplicação, ela lê algumas tabelas e então forma uma pauta de
 compromissos do usuário logado, nesse ponto quando o usuário esta logando,
 meu EM, no gráfico de principais atividades da um pico tipo everest. Nessa
 pauta, onde aparece os compromissos do usuário, se ele for dar baixa em
 alguma atividade a aplicação congela por uns 30 segundos, meu gráfico do EM
 vai lá nas alturas e depois volta tudo ao normal.

 O que mais me chama atenção, é que se ele der baixa por outro caminho é
 instantaneo, nada acontece.

 Agradeço orientações.

 Obrigado!

  



Re: [oracle_br] Banco para treinamento

2014-09-18 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Boa Tarde,

Segue abaixo link de banco de dados de Exemplo da Pós Graduação da
Universidade Federal do Mato Grosso:

http://www.ic.ufmt.br:8080/c/document_library/get_file?p_l_id=12874folderId=304012name=DLFE-5305.txt

é simples mais é um modelo para estudos prático.

Att,
Emerson

Em 18 de setembro de 2014 13:36, Alex sandro eduardo alexsand...@gmail.com
[oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Eu tenho um Banco virtualizado do oracle 11G, em linux, ajuda??

 Em 18 de setembro de 2014 14:27, marcelo pereira da silva
 marcelo...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br
 escreveu:



 Boa tarde galera!
 Estou querendo estudar SQL e estou precisando de um banco para
 treinamento.

 Alguém tem um banco que possa fornecer??




 --
 Alex Sandro

 LPI-101 - Linux Professional Institute Certified;
 LPI000222705



   



Re: [oracle_br] Agrupamento

2014-05-30 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Boa Tarde Miltão,

 é possível sim. Através de operações DML utilizar a cláusula returning
para devolver valores antes do commit.

Segue abaixo, alguns links como exemplo:
http://www.oracle-base.com/articles/misc/dml-returning-into-clause.php

https://community.oracle.com/thread/451776

http://www.oracle-developer.net/display.php?id=413

http://www.adp-gmbh.ch/ora/sql/insert_into_x_returning_y.html

Att,
Emerson


Em 30 de maio de 2014 13:51, 'Milton Bastos Henriquis Jr.'
miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Olá pessoal!

 Tenho mais um probleminha aqui, dessa vez imagino que seja fácil pra
 resolver mas
 não tô conseguindo visualizar a solução.

 Imaginem duas tabelas:

 1 - Itens da nota

 2 - Expedição

 Na tabela 1 é a típica tabela de itens... ela tem uma FK para a tabela de
 Notas.

 ITENS_DA_NOTA
 ID (sequencial)
 NOTA_ID (FK pra nota)
 PRODUTO_ID
 Quantidade

 A tabela 2 é do sistema de gerenciamento do armazém.
 Ao processar as notas, tenho alguns casos em que os produtos devem ser
 AGRUPADOS independente de qual nota seja.

 Por isso, na hora de inserir na tabela de expedição eu faço mais ou menos
 isso:

 INSERT into expedicao
 (...
 ...)
 select produto_id,
 sum(quantidade)
 from itens_da_nota
 group by produto_id;

 Até aí beleza o problema é que depois dessas expedições serem
 processadas
 eu preciso DEVOLVER pra outra tabela um espelho da tabela de itens da nota,
 com a quantidade de produtos atendidos, mantendo inclusive aquele ID do
 item da nota.

 Com isso nós criamos um campo novo na tabela ITENS_DA_NOTA. Vamos supor
 que o nome desse campo seja EXP_ID. Assim, quando fizer o agrupamento
 acima,
 eu quero gravar os IDs desses registros novos da expedição nos registros
 dos itens da nota.

 É possível recuperar o  IDs da EXPEDIÇAO pra gravá-los na própria tabela
 de ITENS_DA_NOTA
 quando eu faço o insert acima?


 Imagino que tenha ficado bem confuso... conseguiram entender?
 Alguma idéia de como fazer isso em PL/SQL?


   



Re: [oracle_br] Agrupamento

2014-05-30 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Miltão,

Quebrei um pouco a cachola aqui e pensei numa forma de conseguir resolver
isso. Segue meu protótipo espero ajudar:

create table itens_da_nota (
item_nota_id number(8),
produto_id number(8),
quantidade number(8),
retorno number(8)
);

create table expedicao (
exp_id number(8),
produto_id number(8),
quantidade number(8)
);

create unique index EXP_UNICO on EXPEDICAO (EXP_ID, PRODUTO_ID, QUANTIDADE);

-- Create sequence
create sequence EXPEDICAOID
minvalue 1
maxvalue 
start with 1
increment by 1
cache 20;

--  inserts

insert into itens_da_nota (ITEM_NOTA_ID, PRODUTO_ID, QUANTIDADE, RETORNO)
values (1, 10, 100, null);
insert into itens_da_nota (ITEM_NOTA_ID, PRODUTO_ID, QUANTIDADE, RETORNO)
values (2, 20, 120, null);
insert into itens_da_nota (ITEM_NOTA_ID, PRODUTO_ID, QUANTIDADE, RETORNO)
values (3, 10, 150, null);
insert into itens_da_nota (ITEM_NOTA_ID, PRODUTO_ID, QUANTIDADE, RETORNO)
values (4, 20, 300, null);
commit;

-- bloco anonimo de atualização dos registros

DECLARE
   total_itens  NUMBER;
   produto_id  NUMBER;
   id_expedicao NUMBER;
   CURSOR c_itens_nota IS
  SELECT produto_id, quantidade, ROWID
  FROM   itens_da_nota
 ;
BEGIN
   SELECT EXPEDICAOID.NEXTVAL INTO id_expedicao FROM   DUAL;
   FOR rc_itens_nota IN c_itens_nota
   LOOP
  BEGIN
  SELECT SUM(quantidade), produto_id
  INTO   total_itens, produto_id
  FROM   itens_da_nota
  WHERE  produto_id = rc_itens_nota.produto_id
  GROUP  BY produto_id;
  INSERT INTO EXPEDICAO
  VALUES
 (id_expedicao,
  produto_id,
  total_itens);
  UPDATE itens_da_nota t
  SETt.retorno = id_expedicao
  WHERE  ROWID = rc_itens_nota.rowid;
  EXCEPTION WHEN OTHERS THEN
UPDATE itens_da_nota t
  SETt.retorno = id_expedicao
  WHERE  ROWID = rc_itens_nota.rowid;
  END;
   END LOOP;
   COMMIT;
END;





Em 30 de maio de 2014 16:20, 'Milton Bastos Henriquis Jr.'
miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Legal Chiappa, obrigado!

 Essa questão de retornar múltiplas linhas vc matou a charada, eu não
 conhecia esse esquema.

 Agora tenho outro problema... além de retornar esse valor eu precisaria
 gravá-lo nos registros correspondentes da ORIGEM (ou seja, do SELECT que
 originou os valores do insert).
 Não consigo imaginar uma solução pra isso - associar esses novos registros
 inseridos com os registros da origem desses dados.
 A dificuldade é justamente por causa do agrupamento.

 Exemplo (espero que funcione a formatação):


item_nota_idproduto_id quantidade retorno  1 10 100  2 20 120  3 10
 150  4 20 300
 Faço o insert na EXPEDIÇAO:   expedição   exp_id produto_id quantidade  51
 10 250  52 20 420 Depois atualizo na tabela origem o campo retorno:

item_nota_idproduto_id quantidade retorno  1 10 100 51  2 20 120 52
 3 10 150 51  4 20 300 52





 Em 30 de maio de 2014 16:52, jlchia...@yahoo.com.br [oracle_br] 
 oracle_br@yahoogrupos.com.br escreveu:



 Miltão, realmente ficou meio confuso, mas ao menos até onde entendi a
 questão parece ser que vc precisa de uma RETURNING clause retornando
 múltiplas linhas : a sintaxe para isso é RETURNING BULK COLLECT
 http://www.java2s.com/Tutorial/Oracle/0440__PL-SQL-Statements/UsingtheRETURNINGBULKCOLLECTclausetoSELECTdirectlyintoaPLSQLarray.htm
 tem um exemplo para um UPDATE retornando múltiplos valores em múltiplas
 linhas, imagino que para INSERT deve ser similar E logicamente :

 a) na hora de processar o array PL/SQL com os valores vc usará FORALL e
 os construtos de array do PL/SQL

 e

 b) sempre que falamos em arrays, vc TEM que ter em mente as limitações de
 memória do PL/SQL : tenha certeza que o retorno vai ser no máximo na casa
 das CENTENAS, não muito mais que isso, sob pena de esgotar PGA e/ou os
 limites de variáveis do PL/SQL, okdoc ?

  []s

Chiappa


  



Re: [oracle_br] Desafio SQL

2014-05-27 Por tôpico Emerson dos Santos Gaudêncio emerson.fen...@gmail.com [oracle_br]
Milton é possível fazendo um case na query com as variações ou utilizando
uma função que retorne as decrições conforme a situação:

Exemplo 1:

create or replace view vw_produto_situacao as
select id_produto, descricao_produto, situacao,
case when
 situacao = 1
then
'Produto vencido'
 when
 situacao = 2
then
'Produto bloqueado manualmente'
when
 situacao = 3
then
'Produto vencido/Produto bloqueado manualmente'
when
 situacao = 4
then
'Produto bloqueado para inventário'
when
 situacao = 5
then
'Produto vencido/Produto bloqueado para inventário'
when
 else
'Produto sem situacao informada'
end descricao_situacao
from tbproduto;


Exemplo 2:

create or replace view vw_produto_situacao as
select id_produto, descricao_produto, situacao,
fnc_get_descricao_situacao(situacao) as descricao_situacao
from tbproduto;


Bom acredito que podem existir outras formas , mais ambas poderiam lhe
ajudar.

Att,
Emerson


Em 27 de maio de 2014 10:51, 'Milton Bastos Henriquis Jr.'
miltonbas...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Bom dia amigos!

 Tenho um probleminha aqui e não sei se existe solução usando SQL.
 Caso alguém consiga resolver, agradeço muito!

 Duas tabelas.

 Primeira tabela: SITUACAO
 A tabela Situação tem um campo ID e um campo Descrição.
 O campo ID é sempre potência de 2:

 ID   Descrição
 1Produto vencido
 2Produto bloqueado manualmente
 4Produto bloqueado para inventário
 8Produto bloqueado por avaria

 Inventei essas descrições acima pra ilustrar o exemplo.

 Numa outra tabela, tabela ESTOQUE, eu tenho um campo
 de Situação. Exemplo:

 ID  Produto   Situação
 1   Cerveja2
 2   Picanha   5
 3   Alcatra 9
 4   Maminha  7

 O campo situação mostra a soma de todos os tipos.
 A picanha está com situação 5 (4 + 1), ou seja, o produto está Vencido e
 também está bloqueado para inventário.


 Bom, tudo isso já está implementado e funcionando.

 A minha dúvida vem abaixo

 Eu quero criar uma VIEW que mostre num campo SITUAÇÃO todos os
 bloqueios desse item do estoque concatenados.

 Isso é possível?

 Ficaria assim:

 1  Cerveja  2  Produto bloqueado manualmente
 2  Picanha  5  Produto vencido|Produto bloqueado para inventário
 3  Alcatra   9  Produto vencido|Produto bloqueado por avaria
 4  Maminha 7  Produto vencido|Produto bloqueado manualmente|Produto
 bloqueado para inventário


 É possível fazer isso apenas com uma query para criar uma View?