Re: [oracle_br] Ajuda query

2018-07-05 Por tôpico Ernesto Oliveira erli...@gmail.com [oracle_br]
Boa tarde!

O problema foi o simbolo '%' que você concatenou ali na expressão, deixa
assim que funciona:

*and ceil((1-nvl(f.mb,0)/decode(t.mb,0,1,t.mb))*100) >= 90 *



Atenciosamente,

Ernesto Oliveira



2018-07-04 11:59 GMT-03:00 Rafael Mendonca raffaell.t...@yahoo.com
[oracle_br] :

>
>
> select t.tablespace_name, t.mb "TotalMB", t.mb - nvl(f.mb,0) "UsedMB",
> nvl(f.mb,0) "FreeMB"
>,lpad(ceil((1-nvl(f.mb,0)/decode(t.mb,0,1,t.mb))*100)||'%', 6) "%
> Used", t.ext "Ext",
>
> '|'||rpad(lpad('#',ceil((1-nvl(f..mb,0)/decode(t.mb,0,1,t.mb))*20),'#'),20,'
> ')||'|' "Used"
> from (
>   select tablespace_name, trunc(sum(bytes)/1048576) MB
>   from dba_free_space
>   group by tablespace_name
>  union all
>   select tablespace_name, trunc(sum(bytes_free)/1048576) MB
>   from v$temp_space_header
>   group by tablespace_name
> ) f, (
>   select tablespace_name, trunc(sum(bytes)/1048576) MB,
> max(autoextensible) ext
>   from dba_data_files
>   group by tablespace_name
>  union all
>   select tablespace_name, trunc(sum(bytes)/1048576) MB,
> max(autoextensible) ext
>   from dba_temp_files
>   group by tablespace_name
> ) t
> where t.tablespace_name = f.tablespace_name (+)
>   and t.tablespace_name not in (select tablespace_name from
> dba_tablespaces where contents in ('TEMPORARY','UNDO'))
> order by t.tablespace_name;
>
>
> Utilizo a consulta acima para monitorar as tablespaces, gostaria de
> adicionar um filtro no qual só trouxesse as tablespaces com 90% de
> utilização ou mais, me baseando na coluna
>
> lpad(ceil((1-nvl(f.mb,0)/decode(t.mb,0,1,t.mb))*100)||'%', 6) "% Used"
>
>
> Alguém poderia ajudar?
>
> 
>


[oracle_br] Ajuda query

2018-07-04 Por tôpico Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
select t.tablespace_name, t.mb "TotalMB", t.mb - nvl(f.mb,0) "UsedMB", 
nvl(f.mb,0) "FreeMB"       
,lpad(ceil((1-nvl(f.mb,0)/decode(t.mb,0,1,t.mb))*100)||'%', 6) "% Used", t.ext 
"Ext",        
'|'||rpad(lpad('#',ceil((1-nvl(f.mb,0)/decode(t.mb,0,1,t.mb))*20),'#'),20,' 
')||'|' "Used"from (  select tablespace_name, trunc(sum(bytes)/1048576) MB  
from dba_free_space  group by tablespace_name union all  select 
tablespace_name, trunc(sum(bytes_free)/1048576) MB  from v$temp_space_header  
group by tablespace_name) f, (  select tablespace_name, 
trunc(sum(bytes)/1048576) MB, max(autoextensible) ext  from dba_data_files  
group by tablespace_name union all  select tablespace_name, 
trunc(sum(bytes)/1048576) MB, max(autoextensible) ext  from dba_temp_files  
group by tablespace_name) twhere t.tablespace_name = f.tablespace_name (+)  and 
t.tablespace_name not in (select tablespace_name from dba_tablespaces where 
contents in ('TEMPORARY','UNDO'))order by t.tablespace_name;

Utilizo a consulta acima para monitorar as tablespaces, gostaria de adicionar 
um filtro no qual só trouxesse as tablespaces com 90% de utilização ou mais, me 
baseando na coluna 
lpad(ceil((1-nvl(f.mb,0)/decode(t.mb,0,1,t.mb))*100)||'%', 6) "% Used"

Alguém poderia ajudar?

Re: [oracle_br] Ajuda com case

2018-02-05 Por tôpico Eduardo Perdomo panc...@gmail.com [oracle_br]
Opa, claro.

O prazo é numérico no cadastro de produto, ex : 270 (dias)
dtsaida é a data de emissao da nota fiscal.

Bem simples mesmo.

2018-02-05 15:45 GMT-02:00 Tércio Costa terciosilvaco...@gmail.com
[oracle_br] :

>
>
> Olha, somente com essas informações não será possível te ajudar,. Por
> favor, nos passe mais informações sobre as tabelas e colunas em questão.
>
> Em 5 de fevereiro de 2018 14:30, Eduardo Perdomo panc...@gmail.com
> [oracle_br]  escreveu:
>
>>
>>
>> Boa tarde.
>>
>> Preciso testar se um produto está dentro do seu prazo de garantia.
>> Tentei da forma abaixo e outras sem sucesso:
>>
>> case p.prazogarantia - trunc( sysdate - f.dtsaida)
>> when  > 0 then 'Dentro do Prazo'
>> when  =< 0 then 'Fora do Prazo'
>> end
>>
>> --
>>
>> Eduardo Perdomo
>> Consultor de Implantação
>> Grupo PC Sistemas - www.grupopc.com.br
>> (21) 6845-8592
>> panc...@gmail.com
>> eduardo.perd...@pcinformatica.com.br
>> Blog: eduardo.perdomo.nom.br
>>
>>
>
>
> --
>
> [image: photo]
> *Tércio Costa, *
> *Oracle Certified SQL Expert, ACE Associate*
> Analista de Dados, Unimed João Pessoa
> m:+55 83 9 9915 9168 <+55+83+9915+9168> | w:https://oraclepress.
> wordpress.com/  |
> 
> 
>
> 
>



-- 

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


Re: [oracle_br] Ajuda com case

2018-02-05 Por tôpico Tércio Costa terciosilvaco...@gmail.com [oracle_br]
Olha, somente com essas informações não será possível te ajudar,. Por
favor, nos passe mais informações sobre as tabelas e colunas em questão.

Em 5 de fevereiro de 2018 14:30, Eduardo Perdomo panc...@gmail.com
[oracle_br]  escreveu:

>
>
> Boa tarde.
>
> Preciso testar se um produto está dentro do seu prazo de garantia.
> Tentei da forma abaixo e outras sem sucesso:
>
> case p.prazogarantia - trunc( sysdate - f.dtsaida)
> when  > 0 then 'Dentro do Prazo'
> when  =< 0 then 'Fora do Prazo'
> end
>
> --
>
> Eduardo Perdomo
> Consultor de Implantação
> Grupo PC Sistemas - www.grupopc.com.br
> (21) 6845-8592
> panc...@gmail.com
> eduardo.perd...@pcinformatica.com.br
> Blog: eduardo.perdomo.nom.br
>
> 
>



-- 

[image: photo]
*Tércio Costa, *
*Oracle Certified SQL Expert, ACE Associate*
Analista de Dados, Unimed João Pessoa
m:+55 83 9 9915 9168 <+55+83+9915+9168> | w:
https://oraclepress.wordpress.com/  |




[oracle_br] Ajuda com case

2018-02-05 Por tôpico Eduardo Perdomo panc...@gmail.com [oracle_br]
Boa tarde.

Preciso testar se um produto está dentro do seu prazo de garantia.
Tentei da forma abaixo e outras sem sucesso:

case p.prazogarantia - trunc( sysdate - f.dtsaida)
when  > 0 then 'Dentro do Prazo'
when  =< 0 then 'Fora do Prazo'
end

-- 

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


[oracle_br] Ajuda Codigo PL/SQL

2018-01-18 Por tôpico Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
Pessoal, boa tarde.
Estou aqui pedindo a ajuda de vocês para criar um bloco pl/sql anonimo..
Eu tenho um cliente que possui um catalogo de recuperacao para cada database e 
vamos unificar todos os bancos em um unico catalogo.
Eu fiz a seguinte consulta para identificar os owners:

SELECT OWNER FROM DBA_OBJECTS WHERE OBJECT_NAME = 'RC_DATABASE';
Com isso, eu tenho os owners dos catalogos que serao dropados futuramente, mas 
antes disso, eu preciso saber quais sao os bancos registrados em cada um desses 
catalogos, consultando:

select name from .RC_DATABASE; -- colocando os owners
obs: lembrando que alguns registros retornam 0 linhas (no rows selected).
Entao eu queria iria criar uma tabela para guardar os nomes dos bancos, seria 
mais ou menos assim o algoritmo:

Declare
v_owner varchar2(50);v_name varchar2(50);cursor c1 is
select ownerinto v_ownerFROM DBA_OBJECTS WHERE OBJECT_NAME = 'RC_DATABASE';

Begin
loop 

select name into v_name from v_owner.RC_DATABASE;
if v_name (tiver alguma linha retornada)
insert into registro values (v_name);
end loop;
End;

/
Com isso eu teria todos os bancos que eu precisaria registrar no novo e unico 
catalogo.



[oracle_br] Ajuda em consulta

2018-01-17 Por tôpico vitorj...@gmail.com [oracle_br]
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production

 

 Tenho a seguinte consulta:
 

 col titulo FOR a50 trunc 
col tipo FOR a30 trunc
col status FOR a30 trunc
col solicitante FOR a40 trunc
col resolvedor FOR a40 trunc
SELECT *
FROM
  (SELECT ch.codchamado AS "NumeroChamado",
  ch.strtitulo AS "Titulo",
  tp.strtipo AS "Tipo",
  ch.strnomeusuario AS "Solicitante",
  st.strstatus AS "Status",
  ch.datdatacritica AS "DataCritica",
  ch.datcreated AS "DataAbertura",
  us.strnome AS "Resolvedor"
   FROM tblchamado ch,
tblstatus st,
tbltipo tp,
tblusuario us
   WHERE ch.codstatus = st.codstatus
 AND ch.codtipo = tp.codtipo
 AND ch.codresolvedor = us.codusuario
 AND ch.datcreated >= trunc(sysdate - 7)
   GROUP BY ch.codchamado,
ch.strtitulo,
tp.strtipo,
ch.strnomeusuario,
st.strstatus,
ch.datdatacritica,
ch.datcreated,
us.strnome)
ORDER BY 1;


 

 Tenho outra tabela, a qual preciso incluir um campo nessa consulta:
 desc tblchamadohistory
   NameNull?Type
   ---  
1  CODHISTORY  NOT NULL NUMBER(9)
2  CODCHAMADO  NOT NULL NUMBER(9)
3  CODUSUARIO  NOT NULL NUMBER(6)
4  CREATEDATE  NOT NULL DATE
5  STRTEXT NOT NULL LONG

 

 

 Essa tabela tem N entradas STRTEXT para cada chamado da tabela TBLCHAMADO.
 Na prática, preciso de mais uma coluna naquele output, trazendo a última 
atividade no chamado (coluna STRTEXT)
 

 Imaginei fazer isso fazendo um MAX na CODHISTORY, com um group by com a 
STRTEXT, como exemplo pra um único chamado:
 

 select max(codhistory) from tblchamadohistory where codchamado = 86721;

MAX(CODHISTORY)
---
 164613
 

 

 select strtext from tblchamadohistory where codchamado = 86721 and codhistory 
= 164613;

STRTEXT

Falhas na exec de 16/01 encaminhadas para Bruno Cunha.

Elapsed: 00:00:00.00
 

 Não consegui utilizar um group by, pois a coluna é do tipo LONG.
 

 

 Se alguém puder dar um exemplo, agradeço!
 

 

 Abraço a todos.

 

 

 att
 Vitor Jr.



Re: [oracle_br] AJuda script shell

2017-12-12 Por tôpico Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
Muito obrigado Mulafani, eu fiz da seguinte maneira:
--KILL_SESSION.ksh
#!/bin/ksh export ORACLE_SID=sdeopexport ORACLE_HOME=/oracle/11gexport 
PATH=$ORACLE_HOME/binsqlplus / as sysdba 
@/home/oracle/acndba/scripts/kill_session.sql

-- kill_session.sql
spool /home/oracle/acndba/scripts/kill_session_output.sqlselect '!kill -9 '|| 
p.spid FROM gv$session s, gv$process p WHERE s.paddr = p.addr AND s.username IS 
NOT NULL AND s.status like '%KILLED%';spool 
off@/home/oracle/acndba/scripts/kill_session_output.sql

Irei testar para ver se esta funcionando, esperando o cenario se repetir... 

Em Terça-feira, 12 de Dezembro de 2017 12:31, "Rodrigo Mufalani 
rodr...@mufalani.com.br [oracle_br]" <oracle_br@yahoogrupos.com.br> escreveu:
 

     Boa tarde,
    Há maneiras mais elegantes de fazer isso com shell script, mas... dá pra 
fazer somente com sql basicamente...
#!/bin/shsqlplus “/as sysdba”< on behalf of Rafael Mendonca 
raffaell.t...@yahoo.com [oracle_br] <oracle_br@yahoogrupos.com.br>
Sent: Tuesday, December 12, 2017 12:21:43 PM
To: oracle_br@yahoogrupos.com.br
Subject: Re: [oracle_br] AJuda script shell  Sergio, obrigado pela resposta, 
mas nao eh isso que preciso, falei em SCRIPT SHELL e nao a query, a query eu ja 
tenho:

kill_session.ksh
#!/bin/ksh export ORACLE_SID=export ORACLE_HOME=/oracle/lalalaexport 
PATH=$ORACLE_HOME/binsqlplus / as sysdba 
@/home/oracle//scripts/kill_session.sql

#kill_session.sql

  SELECT p.spid FROM gv$session s, gv$process p WHERE s.paddr = p.addr AND 
s.username IS NOT NULL AND s.status = 'KILLED';


Beleza, ele me gera um select dinamico com a query pra matar as sessoes, mas eu 
preciso que isso seja feita de forma automatica, alguem pode ajudar?

Em Terça-feira, 12 de Dezembro de 2017 12:00, "Sérgio Luiz Rodrigues Chaves 
sergio.cha...@elumini.com.br [oracle_br]" <oracle_br@yahoogrupos.com.br> 
escreveu:


 Bom dia,
O select abaixo é para identificação de locks mas pode ser adaptado para o que 
você precisa. Atenção para o texto que está para ambiente de RAC.
SELECT gvh.inst_id INST_BLOQUEADORA, gvh.SID SID_BLOQUEADORA, gvs.serial# 
SERIAL_BLOQUEADORA,gvs.status STATUS,gvs.username USUARIO_BLOQUEADOR, (select 
Distinct substr(sql_text,0,999) from gv$sql where sql_id = gvs.PREV_SQL_ID) 
SQL_BLOQUEADOR,gvs.module MODULO,gvs.CLIENT_INFO CLIENT_INFO, gvw.inst_id 
INST_AGUARDANDO, gvw.SID SID_AGUARDANDO,(select distinct username from 
gv$session where sid = gvw.sid and inst_id = gvw.inst_id) 
USUARIO_AGUARDANDO,(select distinct substr(sql_text,0,999) from gv$sql where 
sql_id in (select distinct sql_id from gv$session where sid = gvw.sid and 
inst_id = gvw.inst_id)) SQL_AGUARDANDO,decode(gvh.type, 'MR', 
'Media_recovery','RT', 'Redo_thread','UN', 'User_name','TX', 
'Transaction','TM', 'Dml','UL', 'PLSQL User_lock','DX', 
'Distrted_Transaxion','CF', 'Control_file','IS', 'Instance_state','FS', 
'File_set','IR', 'Instance_recovery','ST', 'Diskspace Transaction','IV', 
'Libcache_invalidation','LS', 'LogStaartORswitch','RW', 'Row_wait','SQ', 
'Sequence_no','TE', 'Extend_table','TT', 'Temp_table','Nothing-') 
TIPO_BLOQUEIO_ESPERA,decode(gvw.request, 0, 'None',1, 'NoLock',2, 
'Row-Share',3, 'Row-Exclusive',4, 'Share-Table',5, 'Share-Row-Exclusive',6, 
'Exclusive','Nothing-') modo_req_espera ,decode(gvs.username,'ATZ','ATENCAO 
ATZ',null)||'alter system kill session '||  || gvh.SID || ',' || 
gvs.serial#||',@'||gvs.INST_ID|| ''' 
IMMEDIATE;---'||decode(gvs.username,'ATZ','ATENCAO ATZ',null) 
"COMANDO_KILL_ORACLE",'EXEC KILL_SESSION ('|| gvh.SID || ',' || 
gvs.serial#||',' ||gvs.INST_ID||');' "COMANDO_KILL_ORACLE1",'kill -9 '||p.spid 
"COMANDO_KILL_LINUX",LPAD(TRUNC(gvw.ctime/3600),6)||':'||LPAD(MOD(TRUNC(gvw.ctime/60),60),2,'0')||':'||LPAD(MOD(gvw.ctime,60),2,'0')
 "TEMPO_ESPERA"FROM gv$lock gvh, gv$lock gvw, gv$session gvs, gv$process pWHERE 
(gvh.id1, gvh.id2) in (SELECT id1, id2 FROM gv$lock WHERE 
request=0INTERSECTSELECT id1, id2 FROM gv$lock WHERE lmode=0)AND 
gvh.id1=gvw.id1AND gvh.id2=gvw.id2AND gvh.request=0AND gvw.lmode=0AND 
gvh.SID=gvs.SIDAND gvh.inst_id=gvs.inst_idand gvs.paddr = p.addrand gvs.inst_id 
= p.inst_id

Desde já agradeço. Sérgio Chaves.
De: oracle_br@yahoogrupos.com.br <oracle_br@yahoogrupos.com.br> em nome de 
Rafael Mendonca raffaell.t...@yahoo.com [oracle_br] 
<oracle_br@yahoogrupos.com.br>
Enviado: terça-feira, 12 de dezembro de 2017 11:01:48
Para: Yahoo! Brazil
Assunto: [oracle_br] AJuda script shell  Pessoal, preciso de um script shell no 
aix para matar *TODAS* as sessoes com status killed, no caso kill -9 pid:
exemplo:

  SELECT  p.spid    FROM v$session s,
         v$process p   WHERE s.paddr       = p.addr     AND s.username    IS 
NOT NULL     AND s.status      = 'KILLED'/

Alguem poderia me ajudar?

  #yiv2437521631 #yiv2437521631 -- #yiv2437521631ygrp-mkp {border:1px solid 
#d8d8d8;font-family:Arial;margin:10px 0;paddin

Re: [oracle_br] AJuda script shell

2017-12-12 Por tôpico Rodrigo Mufalani rodr...@mufalani.com.br [oracle_br]
Boa tarde,

Há maneiras mais elegantes de fazer isso com shell script, mas... dá pra 
fazer somente com sql basicamente...

#!/bin/sh
sqlplus “/as sysdba”<From ... o resto da sua quey
Spool off
@kill1.sql
exit
EOF

Faz um shell que loga no sqlplus... chama esse script acima lembrando que to 
que for v$ vira v\$ no teu script

Obter o Outlook para iOS<https://aka.ms/o0ukef>

From: oracle_br@yahoogrupos.com.br <oracle_br@yahoogrupos.com.br> on behalf of 
Rafael Mendonca raffaell.t...@yahoo.com [oracle_br] 
<oracle_br@yahoogrupos.com.br>
Sent: Tuesday, December 12, 2017 12:21:43 PM
To: oracle_br@yahoogrupos.com.br
Subject: Re: [oracle_br] AJuda script shell



Sergio, obrigado pela resposta, mas nao eh isso que preciso, falei em SCRIPT 
SHELL e nao a query, a query eu ja tenho:

kill_session.ksh

#!/bin/ksh
export ORACLE_SID=
export ORACLE_HOME=/oracle/lalala
export PATH=$ORACLE_HOME/bin
sqlplus / as sysdba @/home/oracle//scripts/kill_session.sql


#kill_session.sql

  SELECT p.spid FROM gv$session s, gv$process p WHERE s.paddr = p.addr AND 
s.username IS NOT NULL AND s.status = 'KILLED';


Beleza, ele me gera um select dinamico com a query pra matar as sessoes, mas eu 
preciso que isso seja feita de forma automatica, alguem pode ajudar?


Em Terça-feira, 12 de Dezembro de 2017 12:00, "Sérgio Luiz Rodrigues Chaves 
sergio.cha...@elumini.com.br [oracle_br]" <oracle_br@yahoogrupos.com.br> 
escreveu:



Bom dia,

O select abaixo é para identificação de locks mas pode ser adaptado para o que 
você precisa. Atenção para o texto que está para ambiente de RAC.

SELECT gvh.inst_id INST_BLOQUEADORA, gvh.SID SID_BLOQUEADORA, gvs.serial# 
SERIAL_BLOQUEADORA,
gvs.status STATUS,gvs.username USUARIO_BLOQUEADOR, (select Distinct 
substr(sql_text,0,999) from gv$sql where sql_id = gvs.PREV_SQL_ID) 
SQL_BLOQUEADOR,
gvs.module MODULO,gvs.CLIENT_INFO CLIENT_INFO, gvw.inst_id INST_AGUARDANDO, 
gvw.SID SID_AGUARDANDO,
(select distinct username from gv$session where sid = gvw.sid and inst_id = 
gvw.inst_id) USUARIO_AGUARDANDO,
(select distinct substr(sql_text,0,999) from gv$sql where sql_id in (select 
distinct sql_id from gv$session where sid = gvw.sid and inst_id = gvw.inst_id)) 
SQL_AGUARDANDO,
decode(gvh.type, 'MR', 'Media_recovery',
'RT', 'Redo_thread',
'UN', 'User_name',
'TX', 'Transaction',
'TM', 'Dml',
'UL', 'PLSQL User_lock',
'DX', 'Distrted_Transaxion',
'CF', 'Control_file',
'IS', 'Instance_state',
'FS', 'File_set',
'IR', 'Instance_recovery',
'ST', 'Diskspace Transaction',
'IV', 'Libcache_invalidation',
'LS', 'LogStaartORswitch',
'RW', 'Row_wait',
'SQ', 'Sequence_no',
'TE', 'Extend_table',
'TT', 'Temp_table',
'Nothing-') TIPO_BLOQUEIO_ESPERA,
decode(gvw.request, 0, 'None',
1, 'NoLock',
2, 'Row-Share',
3, 'Row-Exclusive',
4, 'Share-Table',
5, 'Share-Row-Exclusive',
6, 'Exclusive',
'Nothing-') modo_req_espera ,
decode(gvs.username,'ATZ','ATENCAO ATZ',null)||'alter system kill session 
'||  || gvh.SID || ',' || gvs.serial#||',@'||gvs.INST_ID|| ''' 
IMMEDIATE;---'||decode(gvs.username,'ATZ','ATENCAO ATZ',null) 
"COMANDO_KILL_ORACLE",
'EXEC KILL_SESSION ('|| gvh.SID || ',' || gvs.serial#||',' ||gvs.INST_ID||');' 
"COMANDO_KILL_ORACLE1",
'kill -9 '||p.spid "COMANDO_KILL_LINUX",
LPAD(TRUNC(gvw.ctime/3600),6)||':'||LPAD(MOD(TRUNC(gvw.ctime/60),60),2,'0')||':'||LPAD(MOD(gvw.ctime,60),2,'0')
 "TEMPO_ESPERA"
FROM gv$lock gvh, gv$lock gvw, gv$session gvs, gv$process p
WHERE (gvh.id1, gvh.id2) in (
SELECT id1, id2 FROM gv$lock WHERE request=0
INTERSECT
SELECT id1, id2 FROM gv$lock WHERE lmode=0)
AND gvh.id1=gvw.id1
AND gvh.id2=gvw.id2
AND gvh.request=0
AND gvw.lmode=0
AND gvh.SID=gvs.SID
AND gvh.inst_id=gvs.inst_id
and gvs.paddr = p.addr
and gvs.inst_id = p.inst_id


Desde já agradeço.

Sérgio Chaves.


De: oracle_br@yahoogrupos.com.br <oracle_br@yahoogrupos.com.br> em nome de 
Rafael Mendonca raffaell.t...@yahoo.com [oracle_br] 
<oracle_br@yahoogrupos.com.br>
Enviado: terça-feira, 12 de dezembro de 2017 11:01:48
Para: Yahoo! Brazil
Assunto: [oracle_br] AJuda script shell


Pessoal, preciso de um script shell no aix para matar *TODAS* as sessoes com 
status killed, no caso kill -9 pid:

exemplo:


  SELECT  p.spid
FROM v$session s,
 v$process p
   WHERE s.paddr   = p.addr
 AND s.usernameIS NOT NULL
 AND s.status  = 'KILLED'
/


Alguem poderia me ajudar?






Re: [oracle_br] AJuda script shell

2017-12-12 Por tôpico Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
corrigindo:
select '!kill -9 '|| p.spid FROM gv$session s, gv$process p WHERE s.paddr = 
p.addr AND s.username IS NOT NULL AND s.status like '%KILLED%';


como faco pra dentro do shell, ele executar a saida do sql dinamico? 

Em Terça-feira, 12 de Dezembro de 2017 12:21, "Rafael Mendonca 
raffaell.t...@yahoo.com [oracle_br]" <oracle_br@yahoogrupos.com.br> escreveu:
 

     Sergio, obrigado pela resposta, mas nao eh isso que preciso, falei em 
SCRIPT SHELL e nao a query, a query eu ja tenho:

kill_session.ksh
#!/bin/ksh export ORACLE_SID=export ORACLE_HOME=/oracle/lalalaexport 
PATH=$ORACLE_HOME/binsqlplus / as sysdba 
@/home/oracle//scripts/kill_session.sql

#kill_session.sql

  SELECT p.spid FROM gv$session s, gv$process p WHERE s.paddr = p.addr AND 
s.username IS NOT NULL AND s.status = 'KILLED';


Beleza, ele me gera um select dinamico com a query pra matar as sessoes, mas eu 
preciso que isso seja feita de forma automatica, alguem pode ajudar? 

Em Terça-feira, 12 de Dezembro de 2017 12:00, "Sérgio Luiz Rodrigues Chaves 
sergio.cha...@elumini.com.br [oracle_br]" <oracle_br@yahoogrupos.com.br> 
escreveu:
 

     Bom dia,
O select abaixo é para identificação de locks mas pode ser adaptado para o que 
você precisa. Atenção para o texto que está para ambiente de RAC.
SELECT gvh.inst_id INST_BLOQUEADORA, gvh.SID SID_BLOQUEADORA, gvs.serial# 
SERIAL_BLOQUEADORA,gvs.status STATUS,gvs.username USUARIO_BLOQUEADOR, (select 
Distinct substr(sql_text,0,999) from gv$sql where sql_id = gvs.PREV_SQL_ID) 
SQL_BLOQUEADOR,gvs.module MODULO,gvs.CLIENT_INFO CLIENT_INFO, gvw.inst_id 
INST_AGUARDANDO, gvw.SID SID_AGUARDANDO,(select distinct username from 
gv$session where sid = gvw.sid and inst_id = gvw.inst_id) 
USUARIO_AGUARDANDO,(select distinct substr(sql_text,0,999) from gv$sql where 
sql_id in (select distinct sql_id from gv$session where sid = gvw.sid and 
inst_id = gvw.inst_id)) SQL_AGUARDANDO,decode(gvh.type, 'MR', 
'Media_recovery','RT', 'Redo_thread','UN', 'User_name','TX', 
'Transaction','TM', 'Dml','UL', 'PLSQL User_lock','DX', 
'Distrted_Transaxion','CF', 'Control_file','IS', 'Instance_state','FS', 
'File_set','IR', 'Instance_recovery','ST', 'Diskspace Transaction','IV', 
'Libcache_invalidation','LS', 'LogStaartORswitch','RW', 'Row_wait','SQ', 
'Sequence_no','TE', 'Extend_table','TT', 'Temp_table','Nothing-') 
TIPO_BLOQUEIO_ESPERA,decode(gvw.request, 0, 'None',1, 'NoLock',2, 
'Row-Share',3, 'Row-Exclusive',4, 'Share-Table',5, 'Share-Row-Exclusive',6, 
'Exclusive','Nothing-') modo_req_espera ,decode(gvs.username,'ATZ','ATENCAO 
ATZ',null)||'alter system kill session '||  || gvh.SID || ',' || 
gvs.serial#||',@'||gvs.INST_ID|| ''' 
IMMEDIATE;---'||decode(gvs.username,'ATZ','ATENCAO ATZ',null) 
"COMANDO_KILL_ORACLE",'EXEC KILL_SESSION ('|| gvh.SID || ',' || 
gvs.serial#||',' ||gvs.INST_ID||');' "COMANDO_KILL_ORACLE1",'kill -9 '||p.spid 
"COMANDO_KILL_LINUX",LPAD(TRUNC(gvw.ctime/3600),6)||':'||LPAD(MOD(TRUNC(gvw.ctime/60),60),2,'0')||':'||LPAD(MOD(gvw.ctime,60),2,'0')
 "TEMPO_ESPERA"FROM gv$lock gvh, gv$lock gvw, gv$session gvs, gv$process pWHERE 
(gvh.id1, gvh.id2) in (SELECT id1, id2 FROM gv$lock WHERE 
request=0INTERSECTSELECT id1, id2 FROM gv$lock WHERE lmode=0)AND 
gvh.id1=gvw.id1AND gvh.id2=gvw.id2AND gvh.request=0AND gvw.lmode=0AND 
gvh.SID=gvs.SIDAND gvh.inst_id=gvs.inst_idand gvs.paddr = p.addrand gvs.inst_id 
= p.inst_id

Desde já agradeço. Sérgio Chaves.
De: oracle_br@yahoogrupos.com.br <oracle_br@yahoogrupos.com.br> em nome de 
Rafael Mendonca raffaell.t...@yahoo.com [oracle_br] 
<oracle_br@yahoogrupos.com.br>
Enviado: terça-feira, 12 de dezembro de 2017 11:01:48
Para: Yahoo! Brazil
Assunto: [oracle_br] AJuda script shell  Pessoal, preciso de um script shell no 
aix para matar *TODAS* as sessoes com status killed, no caso kill -9 pid:
exemplo:

  SELECT  p.spid    FROM v$session s,
         v$process p   WHERE s.paddr       = p.addr     AND s.username    IS 
NOT NULL     AND s.status      = 'KILLED'/

Alguem poderia me ajudar?  

 #yiv0085736138 #yiv0085736138 -- #yiv0085736138ygrp-mkp {border:1px solid 
#d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv0085736138 
#yiv0085736138ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv0085736138 
#yiv0085736138ygrp-mkp #yiv0085736138hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv0085736138 #yiv0085736138ygrp-mkp #yiv0085736138ads 
{margin-bottom:10px;}#yiv0085736138 #yiv0085736138ygrp-mkp .yiv0085736138ad 
{padding:0 0;}#yiv0085736138 #yiv0085736138ygrp-mkp .yiv0085736138ad p 
{margin:0;}#yiv0085736138 #yiv0085736138ygrp-mkp .yiv0085736138ad a 
{color:#ff;text-decoration:none;}#yiv0085736138 #yiv0085736138ygrp-sponsor 
#yiv0085736138ygrp-lc {font-family:Arial;}#yiv0085736138 
#yiv0085736138ygrp-sponsor #yiv0085736138ygrp-lc #yiv0085736138hd {margin:10px 
0px;font-weight:700;font-size:78%;line-height:122

Re: [oracle_br] AJuda script shell

2017-12-12 Por tôpico Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
Sergio, obrigado pela resposta, mas nao eh isso que preciso, falei em SCRIPT 
SHELL e nao a query, a query eu ja tenho:

kill_session.ksh
#!/bin/ksh export ORACLE_SID=export ORACLE_HOME=/oracle/lalalaexport 
PATH=$ORACLE_HOME/binsqlplus / as sysdba 
@/home/oracle//scripts/kill_session.sql

#kill_session.sql

  SELECT p.spid FROM gv$session s, gv$process p WHERE s.paddr = p.addr AND 
s.username IS NOT NULL AND s.status = 'KILLED';


Beleza, ele me gera um select dinamico com a query pra matar as sessoes, mas eu 
preciso que isso seja feita de forma automatica, alguem pode ajudar? 

Em Terça-feira, 12 de Dezembro de 2017 12:00, "Sérgio Luiz Rodrigues Chaves 
sergio.cha...@elumini.com.br [oracle_br]" <oracle_br@yahoogrupos.com.br> 
escreveu:
 

     Bom dia,
O select abaixo é para identificação de locks mas pode ser adaptado para o que 
você precisa. Atenção para o texto que está para ambiente de RAC.
SELECT gvh.inst_id INST_BLOQUEADORA, gvh.SID SID_BLOQUEADORA, gvs.serial# 
SERIAL_BLOQUEADORA,gvs.status STATUS,gvs.username USUARIO_BLOQUEADOR, (select 
Distinct substr(sql_text,0,999) from gv$sql where sql_id = gvs.PREV_SQL_ID) 
SQL_BLOQUEADOR,gvs.module MODULO,gvs.CLIENT_INFO CLIENT_INFO, gvw.inst_id 
INST_AGUARDANDO, gvw.SID SID_AGUARDANDO,(select distinct username from 
gv$session where sid = gvw.sid and inst_id = gvw.inst_id) 
USUARIO_AGUARDANDO,(select distinct substr(sql_text,0,999) from gv$sql where 
sql_id in (select distinct sql_id from gv$session where sid = gvw.sid and 
inst_id = gvw.inst_id)) SQL_AGUARDANDO,decode(gvh.type, 'MR', 
'Media_recovery','RT', 'Redo_thread','UN', 'User_name','TX', 
'Transaction','TM', 'Dml','UL', 'PLSQL User_lock','DX', 
'Distrted_Transaxion','CF', 'Control_file','IS', 'Instance_state','FS', 
'File_set','IR', 'Instance_recovery','ST', 'Diskspace Transaction','IV', 
'Libcache_invalidation','LS', 'LogStaartORswitch','RW', 'Row_wait','SQ', 
'Sequence_no','TE', 'Extend_table','TT', 'Temp_table','Nothing-') 
TIPO_BLOQUEIO_ESPERA,decode(gvw.request, 0, 'None',1, 'NoLock',2, 
'Row-Share',3, 'Row-Exclusive',4, 'Share-Table',5, 'Share-Row-Exclusive',6, 
'Exclusive','Nothing-') modo_req_espera ,decode(gvs.username,'ATZ','ATENCAO 
ATZ',null)||'alter system kill session '||  || gvh.SID || ',' || 
gvs.serial#||',@'||gvs.INST_ID|| ''' 
IMMEDIATE;---'||decode(gvs.username,'ATZ','ATENCAO ATZ',null) 
"COMANDO_KILL_ORACLE",'EXEC KILL_SESSION ('|| gvh.SID || ',' || 
gvs.serial#||',' ||gvs.INST_ID||');' "COMANDO_KILL_ORACLE1",'kill -9 '||p.spid 
"COMANDO_KILL_LINUX",LPAD(TRUNC(gvw.ctime/3600),6)||':'||LPAD(MOD(TRUNC(gvw.ctime/60),60),2,'0')||':'||LPAD(MOD(gvw.ctime,60),2,'0')
 "TEMPO_ESPERA"FROM gv$lock gvh, gv$lock gvw, gv$session gvs, gv$process pWHERE 
(gvh.id1, gvh.id2) in (SELECT id1, id2 FROM gv$lock WHERE 
request=0INTERSECTSELECT id1, id2 FROM gv$lock WHERE lmode=0)AND 
gvh.id1=gvw.id1AND gvh.id2=gvw.id2AND gvh.request=0AND gvw.lmode=0AND 
gvh.SID=gvs.SIDAND gvh.inst_id=gvs.inst_idand gvs.paddr = p.addrand gvs.inst_id 
= p.inst_id

Desde já agradeço. Sérgio Chaves.
De: oracle_br@yahoogrupos.com.br <oracle_br@yahoogrupos.com.br> em nome de 
Rafael Mendonca raffaell.t...@yahoo.com [oracle_br] 
<oracle_br@yahoogrupos.com.br>
Enviado: terça-feira, 12 de dezembro de 2017 11:01:48
Para: Yahoo! Brazil
Assunto: [oracle_br] AJuda script shell  Pessoal, preciso de um script shell no 
aix para matar *TODAS* as sessoes com status killed, no caso kill -9 pid:
exemplo:

  SELECT  p.spid    FROM v$session s,
         v$process p   WHERE s.paddr       = p.addr     AND s.username    IS 
NOT NULL     AND s.status      = 'KILLED'/

Alguem poderia me ajudar?  #yiv8262697025 #yiv8262697025 -- 
#yiv8262697025ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 
0;padding:0 10px;}#yiv8262697025 #yiv8262697025ygrp-mkp hr {border:1px solid 
#d8d8d8;}#yiv8262697025 #yiv8262697025ygrp-mkp #yiv8262697025hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv8262697025 #yiv8262697025ygrp-mkp #yiv8262697025ads 
{margin-bottom:10px;}#yiv8262697025 #yiv8262697025ygrp-mkp .yiv8262697025ad 
{padding:0 0;}#yiv8262697025 #yiv8262697025ygrp-mkp .yiv8262697025ad p 
{margin:0;}#yiv8262697025 #yiv8262697025ygrp-mkp .yiv8262697025ad a 
{color:#ff;text-decoration:none;}#yiv8262697025 #yiv8262697025ygrp-sponsor 
#yiv8262697025ygrp-lc {font-family:Arial;}#yiv8262697025 
#yiv8262697025ygrp-sponsor #yiv8262697025ygrp-lc #yiv8262697025hd {margin:10px 
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv8262697025 
#yiv8262697025ygrp-sponsor #yiv8262697025ygrp-lc .yiv8262697025ad 
{margin-bottom:10px;padding:0 0;}#yiv8262697025 #yiv8262697025actions 
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv8262697025 
#yiv8262697025activity 
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv8262697025
 #yiv8262697025activity span {font-weight

Re: [oracle_br] AJuda script shell

2017-12-12 Por tôpico Sérgio Luiz Rodrigues Chaves sergio.cha...@elumini.com.br [oracle_br]
Bom dia,




O select abaixo é para identificação de locks mas pode ser adaptado para o que 
você precisa. Atenção para o texto que está para ambiente de RAC.




SELECT gvh.inst_id INST_BLOQUEADORA, gvh.SID SID_BLOQUEADORA, gvs.serial# 
SERIAL_BLOQUEADORA,
gvs.status STATUS,gvs.username USUARIO_BLOQUEADOR, (select Distinct 
substr(sql_text,0,999) from gv$sql where sql_id = gvs.PREV_SQL_ID) 
SQL_BLOQUEADOR,
gvs.module MODULO,gvs.CLIENT_INFO CLIENT_INFO, gvw.inst_id INST_AGUARDANDO, 
gvw.SID SID_AGUARDANDO,
(select distinct username from gv$session where sid = gvw.sid and inst_id = 
gvw.inst_id) USUARIO_AGUARDANDO,
(select distinct substr(sql_text,0,999) from gv$sql where sql_id in (select 
distinct sql_id from gv$session where sid = gvw.sid and inst_id = gvw.inst_id)) 
SQL_AGUARDANDO,
decode(gvh.type, 'MR', 'Media_recovery',
'RT', 'Redo_thread',
'UN', 'User_name',
'TX', 'Transaction',
'TM', 'Dml',
'UL', 'PLSQL User_lock',
'DX', 'Distrted_Transaxion',
'CF', 'Control_file',
'IS', 'Instance_state',
'FS', 'File_set',
'IR', 'Instance_recovery',
'ST', 'Diskspace Transaction',
'IV', 'Libcache_invalidation',
'LS', 'LogStaartORswitch',
'RW', 'Row_wait',
'SQ', 'Sequence_no',
'TE', 'Extend_table',
'TT', 'Temp_table',
'Nothing-') TIPO_BLOQUEIO_ESPERA,
decode(gvw.request, 0, 'None',
1, 'NoLock',
2, 'Row-Share',
3, 'Row-Exclusive',
4, 'Share-Table',
5, 'Share-Row-Exclusive',
6, 'Exclusive',
'Nothing-') modo_req_espera ,
decode(gvs.username,'ATZ','ATENCAO ATZ',null)||'alter system kill session 
'||  || gvh.SID || ',' || gvs.serial#||',@'||gvs.INST_ID|| ''' 
IMMEDIATE;---'||decode(gvs.username,'ATZ','ATENCAO ATZ',null) 
"COMANDO_KILL_ORACLE",
'EXEC KILL_SESSION ('|| gvh.SID || ',' || gvs.serial#||',' ||gvs.INST_ID||');' 
"COMANDO_KILL_ORACLE1",
'kill -9 '||p.spid "COMANDO_KILL_LINUX",
LPAD(TRUNC(gvw.ctime/3600),6)||':'||LPAD(MOD(TRUNC(gvw.ctime/60),60),2,'0')||':'||LPAD(MOD(gvw.ctime,60),2,'0')
 "TEMPO_ESPERA"
FROM gv$lock gvh, gv$lock gvw, gv$session gvs, gv$process p
WHERE (gvh.id1, gvh.id2) in (
SELECT id1, id2 FROM gv$lock WHERE request=0

INTERSECT
SELECT id1, id2 FROM gv$lock WHERE lmode=0)
AND gvh.id1=gvw.id1
AND gvh.id2=gvw.id2
AND gvh.request=0
AND gvw.lmode=0
AND gvh.SID=gvs.SID
AND gvh.inst_id=gvs.inst_id
and gvs.paddr = p.addr
and gvs.inst_id = p.inst_id






Desde já agradeço.


Sérgio Chaves.





De: oracle_br@yahoogrupos.com.br <oracle_br@yahoogrupos.com.br> em nome de 
Rafael Mendonca raffaell.t...@yahoo.com [oracle_br] 
<oracle_br@yahoogrupos.com.br>
Enviado: terça-feira, 12 de dezembro de 2017 11:01:48
Para: Yahoo! Brazil
Assunto: [oracle_br] AJuda script shell






Pessoal, preciso de um script shell no aix para matar *TODAS* as sessoes com 
status killed, no caso kill -9 pid:


exemplo:




  SELECT  p.spid
FROM v$session s,
 v$process p
   WHERE s.paddr   = p.addr
 AND s.usernameIS NOT NULL
 AND s.status  = 'KILLED'
/




Alguem poderia me ajudar?






[oracle_br] AJuda script shell

2017-12-12 Por tôpico Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
Pessoal, preciso de um script shell no aix para matar *TODAS* as sessoes com 
status killed, no caso kill -9 pid:
exemplo:

  SELECT  p.spid    FROM v$session s,
         v$process p   WHERE s.paddr       = p.addr     AND s.username    IS 
NOT NULL     AND s.status      = 'KILLED'/

Alguem poderia me ajudar?

Re: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-18 Por tôpico jlchia...@yahoo.com.br [oracle_br]
No caso o colega lá quer fazer UPDATE, e para UPDATE o NOLOGGING é basicamente 
inútil, inócuo, não funfa :vide 
http://nervinformatica.com.br/blog/index.php/2014/06/03/teste-desempenho-com-indices-em-nologging/
 
http://nervinformatica.com.br/blog/index.php/2014/06/03/teste-desempenho-com-indices-em-nologging/
 ...
 Seria útil se ele optasse pelo INSERT /*+ APPEND */  inserindo os novos 
valores , mas já que cfrme outras respostas ele já teve uma excelente resposta 
paralelizando o UPDATE acho que não é o caso...

[]s

  Chiappa

Re: RES: RES: RES: RES: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-18 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Yes !!! Agora sim estamos "cozinhando com gás", como dizia minha avó... É isso 
aí 

 []s

  Chiappa

RES: RES: RES: RES: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-18 Por tôpico Ricardo Sá ricardo....@terra.com.br [oracle_br]
Chiappa, bom dia.

 

Foi extremamente rápido. Acredite ou não, veja o tempo:

 

ERPPRD@dbcapul2 > Disconnected from Oracle Database 11g Enterprise Edition 
Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, 
OLAP,

Data Mining and Real Application Testing options

0.02user 0.01system 15:26.91elapsed 0%CPU (0avgtext+0avgdata 55296maxresident)k

8inputs+56outputs (0major+28765minor)pagefaults 0swaps

 

Mais uma vez, muito obrigado.

 

Ricardo

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Enviada em: terça-feira, 17 de outubro de 2017 18:03
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: RES: RES: RES: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 
MILHOES DE LINHAS

 

  

Ok : se nesse servidor 50% inferior E rodando serial vc levou duas horas, ** 
faça um teste ** nele paralelizando o UPDATE com digamos umas 4 slaves e veja o 
que acontece SE o ganho for bom, taca um DOP ainda maior em PROD que vc 
deve ter uma redução significativa do tempo

[]s

  Chiappa





Re: RES: RES: RES: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-17 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Ok : se nesse servidor 50% inferior E rodando serial vc levou duas horas, ** 
faça um teste ** nele paralelizando o UPDATE com digamos umas 4 slaves e veja o 
que acontece SE o ganho for bom, taca um DOP ainda maior em PROD que vc 
deve ter uma redução significativa do tempo

[]s

  Chiappa

Re: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-17 Por tôpico Rodrigo Mufalani rodr...@mufalani.com.br [oracle_br]
Já experimentou usar nologging para a tabela e os indices... lembrando que 
depois um backup da mesma...

Obter o Outlook para iOS<https://aka.ms/o0ukef>

From: oracle_br@yahoogrupos.com.br <oracle_br@yahoogrupos.com.br> on behalf of 
jlchia...@yahoo.com.br [oracle_br] <oracle_br@yahoogrupos.com.br>
Sent: Tuesday, October 17, 2017 6:02:45 PM
To: oracle_br@yahoogrupos.com.br
Subject: Re: RES: RES: RES: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 
MILHOES DE LINHAS



Ok : se nesse servidor 50% inferior E rodando serial vc levou duas horas, ** 
faça um teste ** nele paralelizando o UPDATE com digamos umas 4 slaves e veja o 
que acontece SE o ganho for bom, taca um DOP ainda maior em PROD que vc 
deve ter uma redução significativa do tempo

[]s

  Chiappa




RES: RES: RES: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-17 Por tôpico Ricardo Sá ricardo....@terra.com.br [oracle_br]
Chiappa,

O servidor de contingência que realizei o procedimento de update, é +/- 50% 
inferior ao de produção (conjunto processador, disco controladora local, etc).

Não usei paralelismo, rodei o UPDATE direto... esta tabela não tem colunas 
CLOB,BLOB... e também não está particionada...

 

Ricardo

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Enviada em: terça-feira, 17 de outubro de 2017 15:52
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: RES: RES: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 
MILHOES DE LINHAS

 

  

Tá, mas xô entender melhor : depois que vc desabilitou os triggers e dropou os 
índices (E TAMBÉM desabilitou ou dropou as constraints, claro), vc fez o UPDATE 
em modo serial OU com paralelismo Ativado (já que cfrme a Documentação online 
em 
https://docs.oracle.com/cd/E11882_01/server.112/e25523/parallel007.htm#i1009257 
indica, é Possível se paralelizar UPDATEs e outros DMLs via ALTER SESSION 
ENABLE PARALLEL DML) ? QUAL o degree de paralelismo que vc usou no UPDATE, se 
estava habilitado o PARALLEL DML ? Se não fez o UPDATE em Parallel-mode, tinha 
alguma coisa que te impedia (por exemplo, tabela é clusterizada, ou é 
não-particionada contendo colunas LOBs, ou tá envolvida numa transação 
distribuída, ou qquer uma das demais restrições) ??
 Pergunto isso porque num hardware enterprise-class (inferior à Produção mas 
não é tããão inferior, creio) E com o overhead dos índices e das constraints 
eliminado, 11 milhões Não É de forma alguma algo que deveria levar 2 horas pra 
se fazer UPDATE, daí minha Dedução que talvez vc não paralelizou, ou então 
paralelizou com um degree muito pequeno/tímido...
 
 []s
 
   Chiappa





Re: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-17 Por tôpico Gustavo Guedes guedescomputa...@gmail.com [oracle_br]
Opa, por nada Ricardo!

Fico feliz em ter ajudado.
Grande abraço!

Em 17 de outubro de 2017 12:47, Ricardo Sá ricardo@terra.com.br
[oracle_br] <oracle_br@yahoogrupos.com.br> escreveu:

>
>
> Show,
>
> @Gustavo, era isto mesmo que eu precisava.
>
> Muito obrigado.
>
>
>
> @Rodrigo,
>
> Agradeço também a ajuda.
>
>
>
>
>
> *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
> *Enviada em:* terça-feira, 17 de outubro de 2017 12:09
> *Para:* oracle_br@yahoogrupos.com.br
> *Assunto:* Re: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES
> DE LINHAS
>
>
>
>
>
> Boa tarde, Ricardo!
>
>
>
> Veja se isto ajuda: É um bloco PL/SQL que, a cada 500 registros
> atualizados, efetua um COMMIT, para não comprometer a área de Rollback...
>
> Obs: Efetuar commit a cada 500 registros é só um exemplo... Este valor
> pode ser maior ou menor, de acordo com a área de Rollback...
>
>
>
>
>
> DECLARE
>
>   vQtLinhas NUMBER(3) := 0;
>
>
>
> BEGIN
>
>
>
>   FOR Reg IN (SELECT CAMPO_PK ID_TABELA -- Campo chave da tabela
>
>   FROM   TABELA)
>
>   LOOP
>
>
>
> UPDATE TABELA
>
> SETCAMPO_CHAR = ''
>
> WHERE  CAMPO_PK   = Reg.ID_TABELA;
>
>
>
> vQtLinhas := vQtLinhas + 1; -- Registra a Qtde de Linhas atualizadas
>
>
>
> IF vQtLinhas = 500 THEN -- Quando o total de linhas atualizadas
> atingir 500, efetua um COMMIT;
>
>   COMMIT;
>
>   vQtLinhas := 0;
>
> END IF;
>
>
>
>   END LOOP;
>
>
>
>   COMMIT; -- Este COMMIT é importante para atualizar o último bloco de
> linhas que não chegou a 500 (Ex: As últimas 387 linhas)
>
>
>
> END;
>
>
>
>
>
>
>
> Em 17 de outubro de 2017 11:34, Ricardo Sá ricardo@terra.com.br
> [oracle_br] <oracle_br@yahoogrupos.com.br> escreveu:
>
>
>
> Bom dia, a todos.
>
>
>
> Solicito a gentileza se alguém pode me ajudar a resolver uma questão.
>
>
>
> Preciso realizar um UPDATE monstro em um tabela 11.500.000 (11,5 milhoes
> de linhas).
>
>
>
> O update é sobre uma coluna CHAR(1) com o valor “ “.
>
>
>
> Pensei em um bloco PLSQL, mas me falta neste momento criatividade para
> montar este bloco.
>
>
>
> Obs.: O banco é 11.2.0.4.0 (Enterprise Edition) sobre Oracle RAC com 2
> nós esta tabela tem 35 indices... (sei que é absurdo, mas é o ERP que
> foi construído desta forma).
>
>
>
> Alguem poderia, me ajudar nesta questão.
>
>
>
> Ricardo Sá
>
> (11) 98286-0048
>
>
>
>
>
> --
>
> Atenciosamente,
> *Gustavo Guedes de Sene*
>
> 
>



-- 
Atenciosamente,
*Gustavo Guedes de Sene*


Re: RES: RES: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-17 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Tá, mas xô entender melhor : depois que vc desabilitou os triggers e dropou os 
índices (E TAMBÉM desabilitou ou dropou as constraints, claro), vc fez o UPDATE 
em modo serial OU com paralelismo Ativado (já que cfrme a Documentação online 
em 
https://docs.oracle.com/cd/E11882_01/server.112/e25523/parallel007.htm#i1009257 
indica, é Possível se paralelizar UPDATEs e outros DMLs via ALTER SESSION 
ENABLE PARALLEL DML) ? QUAL o degree de paralelismo que vc usou no UPDATE, se 
estava habilitado o PARALLEL DML ? Se não fez o UPDATE em Parallel-mode, tinha 
alguma coisa que te impedia (por exemplo, tabela é clusterizada, ou é 
não-particionada contendo colunas LOBs, ou tá envolvida numa transação 
distribuída, ou qquer uma das demais restrições) ??
 Pergunto isso porque num hardware enterprise-class (inferior à Produção mas 
não é tããão inferior, creio) E com o overhead dos índices e das constraints 
eliminado, 11 milhões Não É de forma alguma algo que deveria levar 2 horas pra 
se fazer UPDATE, daí minha Dedução que talvez vc não paralelizou, ou então 
paralelizou com um degree muito pequeno/tímido...
 
 []s
 
   Chiappa

Re: RES: RES: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-17 Por tôpico Junior Cesar juniorcesa...@yahoo.com.br [oracle_br]
Opa, boa tarde!
Segue um bloco de exemplo.

CREATE TABLE teste_update (ID NUMBER, texto CHAR(1))/SELECT * FROM 
teste_update/SQL> desc teste_update;Name  Type    Nullable Default Comments 
- ---  ---  ID    NUMBER  Y                         
TEXTO CHAR(1) Y                         
SQL> 

DECLARE
  CURSOR C IS    SELECT ROWID rrowid       FROM teste_update;       -- se tiver 
um filtro de data vc pode rodar em parallel 
    TYPE T_C IS TABLE OF C%ROWTYPE;
    C_Array T_C;
  BEGIN
    dbms_application_info.set_action('Abrindo cursor');    OPEN C;    --    LOOP
      dbms_application_info.set_action('Qtd C '||C%ROWCOUNT);      FETCH C BULK 
COLLECT INTO C_array LIMIT 1;
      FORALL i IN 1..C_array.count      UPDATE teste_update         SET texto = 
'.'       WHERE rowid = C_Array(i).rrowid;
      COMMIT;
      EXIT WHEN C%NOTFOUND;
    END LOOP;
    COMMIT;
    CLOSE C;
  EXCEPTION    WHEN OTHERS THEN      ROLLBACK;      RAISE;
END;/-- vc pode criar uma procedure com parametro de entrada no bloco acima e 
depois usar esse bloco abaixo para atualizar em parallel 
DECLARE
  L_date DATE   := DATE '2013-03-14';  L_date_f DATE := DATE '2013-03-15';
BEGIN  --  FOR i IN REVERSE 0..(L_date_f-L_date)-1 LOOP    --    
dbms_application_info.set_module('BKLOG', TO_CHAR(L_date + i, '-mm-dd'));   
 --    BEGIN      --      NULL;      --    END;    --  END LOOP;  --END;
Espero que ajude.
Abs, 

Em Terça-feira, 17 de Outubro de 2017 14:48, "Ricardo Sá 
ricardo@terra.com.br [oracle_br]" <oracle_br@yahoogrupos.com.br> escreveu:
 

     Chiappa,  De fato foi o que aconteceu, inicialmente o bloco PL/SQL rodou 
tranquilo, a cada 100.000 linhas, porém aos poucos foi ficando lento, aí eu 
cancelei.E fiz exatamente o procedimento que você informou neste, ou seja, 
dropei todos os índices, desabilitei as triggers, em um base StandBy em um DG 
que mantenho.Estabeleci uma área de UNDO de 256GB de disco e RETENÇÃO de 6 
Horas.O processo rodou em 2 horas, em um servidor com recursos inferior ao de 
produção ( 2 Nodes rodando em storage VNX bem configurado pelo pessoal da 
DELL-EMC).Depois a recriação dos índices demorou 1 hora rodando com parallel 
10, totalizando todo o processo aprox.. 3 horas.Irei rodar este processo em uma 
janela bem folgada no amb produção , e acredito que irá cair para quase a 
metade do tempo.  De qq forma, muito obrigado pela abordagem.  Att.:Ricardo  
De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Enviada em: terça-feira, 17 de outubro de 2017 13:55
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: RES: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE 
LINHAS    Ricardo, eu ** discordo ** dessa Abordagem : se o objetivo é máxima 
Performance o correto e Recomendado é vc ter uma área de ROLLBACK o mais larga 
Possível e fazer num comando só INCLUSIVE, eu imagino que vc Saiba que :

a. cada COMMIT *** implica *** em espera por I/O, já que força um sync write

b. vc está jogando PELA JANELA a integridade dos dados, pois se vc tinha que 
processar x linhas, processou menos que isso e deu um COMMIT, se as próximas 
linhas falharem vc acabou com uma tabela MEio processada e Meio não processada, 
comofaz ??

c. vc está jogando PELA JANELA o conceito de Transação, que demanda que *** 
TODOS *** os comandos/operações Tem que ser reversíveis : ora , no mesmo 
exemplo de cima se vc comitou algumas vezes no LOOP e depois disso houve falha 
(ou o usuário quer Desfazer a transação) o ROLLBACK SIMPLESMENTE NÃO VAI 
FUNCIONAR, o que tá comitado comitou, comofaz??

==> NADA do que eu disse é novidade, há 15 anos o Tom Kyte já falava isso, vide 
https://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:4951966319022
 . PENSE NESSAS CONSEQUÊNCIAS antes de sair usando essa 'técnica', sim sim 
???

 imho os procedimentos Performáticos e Seguros de se fazer seriam :

1. Paralelismo  : já que é EE vc ** necessariamente ** TEM aí na mão a chance 
de rodar o DML em parallel-mode e/ou de ler os registros que quer alterar em 
Parallel... O degree de parallelismo vai depender muito do teu hardware, vc tem 
que levantar qual tua capacidade em termos de CPU e I/O...

ou

2. se a Maioria das linhas vão ser Updateadas, vc faz um INSERT */ APPEND */ 
num outra tabela , alterando o valor que quer alterar : isso vai diminuir 
MONSTRUOSAMENTE o tanto de redo log gerado (não vai zerar mas vai Diminuir 
Enormemente!!) e é mais rápido que UPDATE, veja 
https://asktom.oracle.com/pls/apex/asktom.search?tag=how-to-update-millions-or-records-in-a-table-200211#6417104879869
 para um Exemplo

===> E NECESSARIAMENTE um DML largo é SIM uma Manutenção da tabela, então TEM 
que ser feita num período de menor carga no sistema, e PREFERENCIALMENTE, com 
os índices E constraints desabilitados, os quais vc Reconstruiria em parallel 
depois e com NOVALIDATE nas constraint se possível...

  []s
  
    Chiappa

OBS : se por qualquer Mot

RES: RES: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-17 Por tôpico Ricardo Sá ricardo....@terra.com.br [oracle_br]
Chiappa,

 

De fato foi o que aconteceu, inicialmente o bloco PL/SQL rodou tranquilo, a 
cada 100.000 linhas, porém aos poucos foi ficando lento, aí eu cancelei.

E fiz exatamente o procedimento que você informou neste, ou seja, dropei todos 
os índices, desabilitei as triggers, em um base StandBy em um DG que mantenho.

Estabeleci uma área de UNDO de 256GB de disco e RETENÇÃO de 6 Horas.

O processo rodou em 2 horas, em um servidor com recursos inferior ao de 
produção ( 2 Nodes rodando em storage VNX bem configurado pelo pessoal da 
DELL-EMC).

Depois a recriação dos índices demorou 1 hora rodando com parallel 10, 
totalizando todo o processo aprox.. 3 horas.

Irei rodar este processo em uma janela bem folgada no amb produção , e acredito 
que irá cair para quase a metade do tempo.

 

De qq forma, muito obrigado pela abordagem.

 

Att.:

Ricardo

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Enviada em: terça-feira, 17 de outubro de 2017 13:55
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: RES: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE 
LINHAS

 

  

Ricardo, eu ** discordo ** dessa Abordagem : se o objetivo é máxima Performance 
o correto e Recomendado é vc ter uma área de ROLLBACK o mais larga Possível e 
fazer num comando só INCLUSIVE, eu imagino que vc Saiba que :

a. cada COMMIT *** implica *** em espera por I/O, já que força um sync write

b. vc está jogando PELA JANELA a integridade dos dados, pois se vc tinha que 
processar x linhas, processou menos que isso e deu um COMMIT, se as próximas 
linhas falharem vc acabou com uma tabela MEio processada e Meio não processada, 
comofaz ??

c. vc está jogando PELA JANELA o conceito de Transação, que demanda que *** 
TODOS *** os comandos/operações Tem que ser reversíveis : ora , no mesmo 
exemplo de cima se vc comitou algumas vezes no LOOP e depois disso houve falha 
(ou o usuário quer Desfazer a transação) o ROLLBACK SIMPLESMENTE NÃO VAI 
FUNCIONAR, o que tá comitado comitou, comofaz??

==> NADA do que eu disse é novidade, há 15 anos o Tom Kyte já falava isso, vide 
https://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:4951966319022
 . PENSE NESSAS CONSEQUÊNCIAS antes de sair usando essa 'técnica', sim sim 
???

 imho os procedimentos Performáticos e Seguros de se fazer seriam :

1. Paralelismo  : já que é EE vc ** necessariamente ** TEM aí na mão a chance 
de rodar o DML em parallel-mode e/ou de ler os registros que quer alterar em 
Parallel... O degree de parallelismo vai depender muito do teu hardware, vc tem 
que levantar qual tua capacidade em termos de CPU e I/O...

ou

2. se a Maioria das linhas vão ser Updateadas, vc faz um INSERT */ APPEND */ 
num outra tabela , alterando o valor que quer alterar : isso vai diminuir 
MONSTRUOSAMENTE o tanto de redo log gerado (não vai zerar mas vai Diminuir 
Enormemente!!) e é mais rápido que UPDATE, veja 
https://asktom.oracle.com/pls/apex/asktom.search?tag=how-to-update-millions-or-records-in-a-table-200211#6417104879869
 para um Exemplo

===> E NECESSARIAMENTE um DML largo é SIM uma Manutenção da tabela, então TEM 
que ser feita num período de menor carga no sistema, e PREFERENCIALMENTE, com 
os índices E constraints desabilitados, os quais vc Reconstruiria em parallel 
depois e com NOVALIDATE nas constraint se possível...

  []s
  
Chiappa

OBS : se por qualquer Motivo não puder fazer Parallel SQL ao menos valide a 
opção de BULK COLLECT serial





Re: RES: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-17 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Ricardo, eu ** discordo ** dessa Abordagem : se o objetivo é máxima Performance 
o correto e Recomendado é vc ter uma área de ROLLBACK o mais larga Possível e 
fazer num comando só INCLUSIVE, eu imagino que vc Saiba que :

a. cada COMMIT *** implica *** em espera por I/O, já que força um sync write

b. vc está jogando PELA JANELA a integridade dos dados, pois se vc tinha que 
processar x linhas, processou menos que isso e deu um COMMIT, se as próximas 
linhas falharem vc acabou com uma tabela MEio processada e Meio não processada, 
comofaz ??

c. vc está jogando PELA JANELA o conceito de Transação, que demanda que *** 
TODOS *** os comandos/operações Tem que ser reversíveis : ora , no mesmo 
exemplo de cima se vc comitou algumas vezes no LOOP e depois disso houve falha 
(ou o usuário quer Desfazer a transação) o ROLLBACK SIMPLESMENTE NÃO VAI 
FUNCIONAR, o que tá comitado comitou, comofaz??

==> NADA do que eu disse é novidade, há 15 anos o Tom Kyte já falava isso, vide 
https://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:4951966319022
 . PENSE NESSAS CONSEQUÊNCIAS antes de sair usando essa 'técnica', sim sim 
???

 imho os procedimentos Performáticos e Seguros de se fazer seriam :

1. Paralelismo  : já que é EE vc ** necessariamente ** TEM aí na mão a chance 
de rodar o DML em parallel-mode e/ou de ler os registros que quer alterar em 
Parallel... O degree de parallelismo vai depender muito do teu hardware, vc tem 
que levantar qual tua capacidade em termos de CPU e I/O...

ou

2. se a Maioria das linhas vão ser Updateadas, vc faz um INSERT */ APPEND */ 
num outra tabela , alterando o valor que quer alterar : isso vai diminuir 
MONSTRUOSAMENTE o tanto de redo log gerado (não vai zerar mas vai Diminuir 
Enormemente!!) e é mais rápido que UPDATE, veja 
https://asktom.oracle.com/pls/apex/asktom.search?tag=how-to-update-millions-or-records-in-a-table-200211#6417104879869
 para um Exemplo

===> E NECESSARIAMENTE um DML largo é SIM uma Manutenção da tabela, então TEM 
que ser feita num período de menor carga no sistema, e PREFERENCIALMENTE, com 
os índices E constraints desabilitados, os quais vc Reconstruiria em parallel 
depois e com NOVALIDATE nas constraint se possível...

  []s
  
Chiappa

OBS : se por qualquer Motivo não puder fazer Parallel SQL ao menos valide a 
opção de BULK COLLECT serial

Re: RES: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-17 Por tôpico Sandro Gazoni sgaz...@yahoo.com.br [oracle_br]
Boa tarde a Todos.
Ricardo a solução é boa, porem acredito que um bulk collect com forall seja 
mais eficiente.
Segue o link
PLSQL 101


| 
| 
| 
|  |  |

 |

 |
| 
|  | 
PLSQL 101

PLSQL 101
 |

 |

 |



 

Em terça-feira, 17 de outubro de 2017 12:47:51 BRST, Ricardo Sá 
ricardo@terra.com.br [oracle_br] <oracle_br@yahoogrupos.com.br> escreveu:  
 
     


Show,

@Gustavo, era isto mesmo que eu precisava.

Muito obrigado.

  

@Rodrigo,

Agradeço também a ajuda.

  

  

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Enviada em: terça-feira, 17 de outubro de 2017 12:09
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

  

  

Boa tarde, Ricardo!

  

Veja se isto ajuda: É um bloco PL/SQL que, a cada 500 registros atualizados, 
efetua um COMMIT, para não comprometer a área de Rollback...

Obs: Efetuar commit a cada 500 registros é só um exemplo... Este valor pode ser 
maior ou menor, de acordo com a área de Rollback...

  

  

DECLARE 

  vQtLinhas NUMBER(3) := 0;

  

BEGIN

  

  FOR Reg IN (SELECT CAMPO_PK ID_TABELA -- Campo chave da tabela

              FROM   TABELA) 

  LOOP

  

    UPDATE TABELA 

    SET    CAMPO_CHAR = ''

    WHERE  CAMPO_PK   = Reg.ID_TABELA;

  

    vQtLinhas := vQtLinhas + 1; -- Registra a Qtde de Linhas atualizadas

  

    IF vQtLinhas = 500 THEN -- Quando o total de linhas atualizadas atingir 
500, efetua um COMMIT;

      COMMIT;

      vQtLinhas := 0; 

    END IF;      

  

  END LOOP; 

  

  COMMIT; -- Este COMMIT é importante para atualizar o último bloco de linhas 
que não chegou a 500 (Ex: As últimas 387 linhas)

  

END;

  

  

  

Em 17 de outubro de 2017 11:34, Ricardo Sá ricardo@terra.com.br [oracle_br] 
<oracle_br@yahoogrupos.com.br> escreveu:


  

Bom dia, a todos.

 

Solicito a gentileza se alguém pode me ajudar a resolver uma questão.

 

Preciso realizar um UPDATE monstro em um tabela 11.500.000 (11,5 milhoes de 
linhas).

 

O update é sobre uma coluna CHAR(1) com o valor “ “.

 

Pensei em um bloco PLSQL, mas me falta neste momento criatividade para montar 
este bloco.

 

Obs.: O banco é 11.2.0.4.0 (Enterprise Edition) sobre Oracle RAC com 2 nós 
esta tabela tem 35 indices... (sei que é absurdo, mas é o ERP que foi 
construído desta forma).

 

Alguem poderia, me ajudar nesta questão.

 

Ricardo Sá

(11) 98286-0048






  

-- 

Atenciosamente,
Gustavo Guedes de Sene


  #yiv7931673260 #yiv7931673260 -- #yiv7931673260ygrp-mkp {border:1px solid 
#d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv7931673260 
#yiv7931673260ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv7931673260 
#yiv7931673260ygrp-mkp #yiv7931673260hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv7931673260 #yiv7931673260ygrp-mkp #yiv7931673260ads 
{margin-bottom:10px;}#yiv7931673260 #yiv7931673260ygrp-mkp .yiv7931673260ad 
{padding:0 0;}#yiv7931673260 #yiv7931673260ygrp-mkp .yiv7931673260ad p 
{margin:0;}#yiv7931673260 #yiv7931673260ygrp-mkp .yiv7931673260ad a 
{color:#ff;text-decoration:none;}#yiv7931673260 #yiv7931673260ygrp-sponsor 
#yiv7931673260ygrp-lc {font-family:Arial;}#yiv7931673260 
#yiv7931673260ygrp-sponsor #yiv7931673260ygrp-lc #yiv7931673260hd {margin:10px 
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv7931673260 
#yiv7931673260ygrp-sponsor #yiv7931673260ygrp-lc .yiv7931673260ad 
{margin-bottom:10px;padding:0 0;}#yiv7931673260 #yiv7931673260actions 
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv7931673260 
#yiv7931673260activity 
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv7931673260
 #yiv7931673260activity span {font-weight:700;}#yiv7931673260 
#yiv7931673260activity span:first-child 
{text-transform:uppercase;}#yiv7931673260 #yiv7931673260activity span a 
{color:#5085b6;text-decoration:none;}#yiv7931673260 #yiv7931673260activity span 
span {color:#ff7900;}#yiv7931673260 #yiv7931673260activity span 
.yiv7931673260underline {text-decoration:underline;}#yiv7931673260 
.yiv7931673260attach 
{clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 
0;width:400px;}#yiv7931673260 .yiv7931673260attach div a 
{text-decoration:none;}#yiv7931673260 .yiv7931673260attach img 
{border:none;padding-right:5px;}#yiv7931673260 .yiv7931673260attach label 
{display:block;margin-bottom:5px;}#yiv7931673260 .yiv7931673260attach label a 
{text-decoration:none;}#yiv7931673260 blockquote {margin:0 0 0 
4px;}#yiv7931673260 .yiv7931673260bold 
{font-family:Arial;font-size:13px;font-weight:700;}#yiv7931673260 
.yiv7931673260bold a {text-decoration:none;}#yiv7931673260 dd.yiv7931673260last 
p a {font-family:Verdana;font-weight:700;}#yiv7931673260 dd.yiv7931673260last p 
span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv7931673260 
dd.yiv7931673260last p span.yiv7931673260yshortcuts 
{margin-right:0;}#yiv7931673260 div.yiv7931673260

RES: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-17 Por tôpico Ricardo Sá ricardo....@terra.com.br [oracle_br]
Show,

@Gustavo, era isto mesmo que eu precisava.

Muito obrigado.

 

@Rodrigo,

Agradeço também a ajuda.

 

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Enviada em: terça-feira, 17 de outubro de 2017 12:09
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

 

  

Boa tarde, Ricardo!

 

Veja se isto ajuda: É um bloco PL/SQL que, a cada 500 registros atualizados, 
efetua um COMMIT, para não comprometer a área de Rollback...

Obs: Efetuar commit a cada 500 registros é só um exemplo... Este valor pode ser 
maior ou menor, de acordo com a área de Rollback...

 

 

DECLARE 

  vQtLinhas NUMBER(3) := 0;

 

BEGIN

  

  FOR Reg IN (SELECT CAMPO_PK ID_TABELA -- Campo chave da tabela

  FROM   TABELA) 

  LOOP

 

UPDATE TABELA 

SETCAMPO_CHAR = ''

WHERE  CAMPO_PK   = Reg.ID_TABELA;

 

vQtLinhas := vQtLinhas + 1; -- Registra a Qtde de Linhas atualizadas

 

IF vQtLinhas = 500 THEN -- Quando o total de linhas atualizadas atingir 
500, efetua um COMMIT;

  COMMIT;

  vQtLinhas := 0; 

END IF;  

 

  END LOOP; 

 

  COMMIT; -- Este COMMIT é importante para atualizar o último bloco de linhas 
que não chegou a 500 (Ex: As últimas 387 linhas)

 

END;

 

 

 

Em 17 de outubro de 2017 11:34, Ricardo Sá ricardo@terra.com.br 
<mailto:ricardo@terra.com.br>  [oracle_br] <oracle_br@yahoogrupos.com.br 
<mailto:oracle_br@yahoogrupos.com.br> > escreveu:

  

Bom dia, a todos.

 

Solicito a gentileza se alguém pode me ajudar a resolver uma questão.

 

Preciso realizar um UPDATE monstro em um tabela 11.500.000 (11,5 milhoes de 
linhas).

 

O update é sobre uma coluna CHAR(1) com o valor “ “.

 

Pensei em um bloco PLSQL, mas me falta neste momento criatividade para montar 
este bloco.

 

Obs.: O banco é 11.2.0.4.0 (Enterprise Edition) sobre Oracle RAC com 2 nós 
esta tabela tem 35 indices... (sei que é absurdo, mas é o ERP que foi 
construído desta forma).

 

Alguem poderia, me ajudar nesta questão.

 

Ricardo Sá

(11) 98286-0048





 

-- 

Atenciosamente,
Gustavo Guedes de Sene





Re: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-17 Por tôpico Gustavo Guedes guedescomputa...@gmail.com [oracle_br]
Boa tarde, Ricardo!

Veja se isto ajuda: É um bloco PL/SQL que, a cada 500 registros
atualizados, efetua um COMMIT, para não comprometer a área de Rollback...
Obs: Efetuar commit a cada 500 registros é só um exemplo... Este valor pode
ser maior ou menor, de acordo com a área de Rollback...


DECLARE
  vQtLinhas NUMBER(3) := 0;

BEGIN

  FOR Reg IN (SELECT CAMPO_PK ID_TABELA -- Campo chave da tabela
  FROM   TABELA)
  LOOP

UPDATE TABELA
SETCAMPO_CHAR = ''
WHERE  CAMPO_PK   = Reg.ID_TABELA;

vQtLinhas := vQtLinhas + 1; -- Registra a Qtde de Linhas atualizadas

IF vQtLinhas = 500 THEN -- Quando o total de linhas atualizadas atingir
500, efetua um COMMIT;
  COMMIT;
  vQtLinhas := 0;
END IF;

  END LOOP;

  COMMIT; -- Este COMMIT é importante para atualizar o último bloco de
linhas que não chegou a 500 (Ex: As últimas 387 linhas)

END;



Em 17 de outubro de 2017 11:34, Ricardo Sá ricardo@terra.com.br
[oracle_br]  escreveu:

>
>
> Bom dia, a todos.
>
>
>
> Solicito a gentileza se alguém pode me ajudar a resolver uma questão.
>
>
>
> Preciso realizar um UPDATE monstro em um tabela 11.500.000 (11,5 milhoes
> de linhas).
>
>
>
> O update é sobre uma coluna CHAR(1) com o valor “ “.
>
>
>
> Pensei em um bloco PLSQL, mas me falta neste momento criatividade para
> montar este bloco.
>
>
>
> Obs.: O banco é 11.2.0.4.0 (Enterprise Edition) sobre Oracle RAC com 2
> nós esta tabela tem 35 indices... (sei que é absurdo, mas é o ERP que
> foi construído desta forma).
>
>
>
> Alguem poderia, me ajudar nesta questão.
>
>
>
> Ricardo Sá
>
> (11) 98286-0048
>
> 
>



-- 
Atenciosamente,
*Gustavo Guedes de Sene*


Re: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-17 Por tôpico Rodrigo Mufalani rodr...@mufalani.com.br [oracle_br]
Bom dia,

Há muito tempo atrás tive o privilégio de assitir no GUOB uma palestra do 
Tom Kyte onde ele ensinou a usar processamento paralelo no SE. Mesmo você 
rodando no EE, pode se beneficiar dessa funcionalidade:

 
https://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:4248554900346593542

   Faz o update por rowid, divide o processamento em blocos de rowid.

Att
Mufalani

Obter o Outlook para iOS<https://aka.ms/o0ukef>

From: oracle_br@yahoogrupos.com.br <oracle_br@yahoogrupos.com.br> on behalf of 
Ricardo Sá ricardo@terra.com.br [oracle_br] <oracle_br@yahoogrupos.com.br>
Sent: Tuesday, October 17, 2017 12:01:10 PM
To: oracle_br@yahoogrupos.com.br
Subject: RES: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE 
LINHAS


Rodrigo,
Concordo contigo, mas como eu havia pedido. Me falta criatividade pra montar 
este bloco, pois o update não tem condição, ou seja, é um UPDATE puro, UPDATE 
TABELA SET COLUNA=’ ‘;
Minha duvida, é como eu montaria este bloco.

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
Enviada em: terça-feira, 17 de outubro de 2017 11:55
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS


Bom dia,

O jeito mais rápido, quase certo, vai ser um full scan. O jeito mais 
tranquilo, mas vai demorar algum tempo, seria fazer um pl/sql para atualizar em 
blocos de registros...

Obter o Outlook para iOS<https://aka.ms/o0ukef>

From: oracle_br@yahoogrupos.com.br<mailto:oracle_br@yahoogrupos.com.br> 
<oracle_br@yahoogrupos.com.br<mailto:oracle_br@yahoogrupos.com.br>> on behalf 
of Ricardo Sá ricardo@terra.com.br<mailto:ricardo@terra.com.br> 
[oracle_br] <oracle_br@yahoogrupos.com.br<mailto:oracle_br@yahoogrupos.com.br>>
Sent: Tuesday, October 17, 2017 11:34:26 AM
To: oracle_br@yahoogrupos.com.br<mailto:oracle_br@yahoogrupos.com.br>
Subject: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS


Bom dia, a todos.

Solicito a gentileza se alguém pode me ajudar a resolver uma questão.

Preciso realizar um UPDATE monstro em um tabela 11.500.000 (11,5 milhoes de 
linhas).

O update é sobre uma coluna CHAR(1) com o valor “ “.

Pensei em um bloco PLSQL, mas me falta neste momento criatividade para montar 
este bloco.

Obs.: O banco é 11.2.0.4.0 (Enterprise Edition) sobre Oracle RAC com 2 nós 
esta tabela tem 35 indices... (sei que é absurdo, mas é o ERP que foi 
construído desta forma).

Alguem poderia, me ajudar nesta questão.

Ricardo Sá
(11) 98286-0048




RES: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-17 Por tôpico Ricardo Sá ricardo....@terra.com.br [oracle_br]
Rodrigo, 

Concordo contigo, mas como eu havia pedido. Me falta criatividade pra montar
este bloco, pois o update não tem condição, ou seja, é um UPDATE puro,
UPDATE TABELA SET COLUNA=’ ‘;

Minha duvida, é como eu montaria este bloco.

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Enviada em: terça-feira, 17 de outubro de 2017 11:55
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE
LINHAS

 

  

Bom dia,

 

O jeito mais rápido, quase certo, vai ser um full scan. O jeito mais
tranquilo, mas vai demorar algum tempo, seria fazer um pl/sql para atualizar
em blocos de registros... 

 

Obter o Outlook para iOS <https://aka.ms/o0ukef> 

  _  

From: oracle_br@yahoogrupos.com.br <mailto:oracle_br@yahoogrupos.com.br>
<oracle_br@yahoogrupos.com.br <mailto:oracle_br@yahoogrupos.com.br> > on
behalf of Ricardo Sá ricardo@terra.com.br
<mailto:ricardo@terra.com.br>  [oracle_br] <oracle_br@yahoogrupos.com.br
<mailto:oracle_br@yahoogrupos.com.br> >
Sent: Tuesday, October 17, 2017 11:34:26 AM
To: oracle_br@yahoogrupos.com.br <mailto:oracle_br@yahoogrupos.com.br> 
Subject: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS


 

  

Bom dia, a todos.

 

Solicito a gentileza se alguém pode me ajudar a resolver uma questão.

 

Preciso realizar um UPDATE monstro em um tabela 11.500.000 (11,5 milhoes de
linhas).

 

O update é sobre uma coluna CHAR(1) com o valor “ “.

 

Pensei em um bloco PLSQL, mas me falta neste momento criatividade para
montar este bloco.

 

Obs.: O banco é 11.2.0.4.0 (Enterprise Edition) sobre Oracle RAC com 2
nós esta tabela tem 35 indices... (sei que é absurdo, mas é o ERP que
foi construído desta forma).

 

Alguem poderia, me ajudar nesta questão.

 

Ricardo Sá

(11) 98286-0048





Re: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-17 Por tôpico Rodrigo Mufalani rodr...@mufalani.com.br [oracle_br]
Bom dia,

O jeito mais rápido, quase certo, vai ser um full scan. O jeito mais 
tranquilo, mas vai demorar algum tempo, seria fazer um pl/sql para atualizar em 
blocos de registros...

Obter o Outlook para iOS<https://aka.ms/o0ukef>

From: oracle_br@yahoogrupos.com.br <oracle_br@yahoogrupos.com.br> on behalf of 
Ricardo Sá ricardo@terra.com.br [oracle_br] <oracle_br@yahoogrupos.com.br>
Sent: Tuesday, October 17, 2017 11:34:26 AM
To: oracle_br@yahoogrupos.com.br
Subject: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS


Bom dia, a todos.

Solicito a gentileza se alguém pode me ajudar a resolver uma questão.

Preciso realizar um UPDATE monstro em um tabela 11.500.000 (11,5 milhoes de 
linhas).

O update é sobre uma coluna CHAR(1) com o valor “ “.

Pensei em um bloco PLSQL, mas me falta neste momento criatividade para montar 
este bloco.

Obs.: O banco é 11.2.0.4.0 (Enterprise Edition) sobre Oracle RAC com 2 nós 
esta tabela tem 35 indices... (sei que é absurdo, mas é o ERP que foi 
construído desta forma).

Alguem poderia, me ajudar nesta questão.

Ricardo Sá
(11) 98286-0048




[oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

2017-10-17 Por tôpico Ricardo Sá ricardo....@terra.com.br [oracle_br]
Bom dia, a todos.

 

Solicito a gentileza se alguém pode me ajudar a resolver uma questão.

 

Preciso realizar um UPDATE monstro em um tabela 11.500.000 (11,5 milhoes de 
linhas).

 

O update é sobre uma coluna CHAR(1) com o valor “ “.

 

Pensei em um bloco PLSQL, mas me falta neste momento criatividade para montar 
este bloco.

 

Obs.: O banco é 11.2.0.4.0 (Enterprise Edition) sobre Oracle RAC com 2 nós 
esta tabela tem 35 indices... (sei que é absurdo, mas é o ERP que foi 
construído desta forma).

 

Alguem poderia, me ajudar nesta questão.

 

Ricardo Sá

(11) 98286-0048



Re: [oracle_br] Ajuda com Delphi pode ser remunerada.

2017-09-20 Por tôpico Eduardo Perdomo panc...@gmail.com [oracle_br]
Bom Dia.

Resolvido:

Em determinado ponto do desenvolvimento criei mais uma conexão ao banco e
acabei fazendo uso alternadamente de duas conexões.
Óbvio que perdi o controle das transações. Passei a usar apenas uma conexão
e tudo se resolveu.

Obrigado a todos.





2017-09-20 13:52 GMT-03:00 jlchia...@yahoo.com.br [oracle_br] <
oracle_br@yahoogrupos.com.br>:

>
>
> Blz : como PROGRAMADOR, a Essência da minha resposta é a frase final :
>
> "O que vc ** TEM ** que fazer agora está Claro : confirmar que
> ABSOLUTAMENTE NÃO TEM COMO teu Aplicativo deixar o usuário sair da tela
> e/ou abrir nova tela (que vai fazer novo SELECT FOR UPDATE!!) com uma
> Transação já aberta"...
>
> Okdoc ??? O conceito do porque o SELECT FOR UPDATE abre Transação (se
> nenhum DML existir antes dele) E de que cada DML implica num LOCK para cada
> linha alterada fundamenta / te dá as causas do Porque, mas o que vc,
> enquanto Programador, tem que fazer tá claro...
>
>  E como eu disse a MONITORAÇÃO através dos cripts, que vai servir para
> COMPROVAR ou REFUTAR a possibilidade de usuário deixando Transações abertas
> (e portanto LOCKs) , é responsa conjunta com o DBA... Enquanto Programador
> o que é Exigido de vc é que vc SAIBA como funciona um RDBMS e que está
> Prevendo os controles necessários nas telas TODAS do seu Aplicativo...
>
>  []s
>
>Chiappa
> 
>



-- 

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


Re: [oracle_br] Ajuda com Delphi pode ser remunerada.

2017-09-20 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Blz : como PROGRAMADOR, a Essência da minha resposta é a frase final : 

"O que vc ** TEM ** que fazer agora está Claro : confirmar que ABSOLUTAMENTE 
NÃO TEM COMO teu Aplicativo deixar o usuário sair da tela e/ou abrir nova tela 
(que vai fazer novo SELECT FOR UPDATE!!) com uma Transação já aberta"...

Okdoc ??? O conceito do porque o SELECT FOR UPDATE abre Transação (se nenhum 
DML existir antes dele) E de que cada DML implica num LOCK para cada linha 
alterada fundamenta / te dá as causas do Porque, mas o que vc, enquanto 
Programador, tem que fazer tá claro...

 E como eu disse a MONITORAÇÃO através dos cripts, que vai servir para 
COMPROVAR ou REFUTAR a possibilidade de usuário deixando Transações abertas (e 
portanto LOCKs) , é responsa conjunta com o DBA... Enquanto Programador o que é 
Exigido de vc é que vc SAIBA como funciona um RDBMS e que está Prevendo os 
controles necessários nas telas TODAS do seu Aplicativo...
 
 []s
 
   Chiappa

Re: [oracle_br] Ajuda com Delphi pode ser remunerada.

2017-09-20 Por tôpico Eduardo Perdomo panc...@gmail.com [oracle_br]
Nossa, muito obrigado, vou reler várias vezes para entender melhor o que
estou fazendo de errado.
Em 20/09/2017 12:48, "jlchia...@yahoo.com.br [oracle_br]" <
oracle_br@yahoogrupos.com.br> escreveu:

>
>
> Ops, caí no limite de texto de mensagem, xô re-enviar o resto do exemplo...
>
>
> ==> Agora vou tentar lockar/acessar com DML em OUTRA SESSÃo as linhas já
> lockadas : no caso vou fazer um SELECT.. FOR UPDATE mas a lógica é a mesma
> para Qualquer Outro DML :
>
> SCOTT#2:@XE:SQL>select * from emp where deptno=20 and empno > 7567 for
> update;
>
> ==> vc não vê aqui mas a sessão ficou CONGELADA, pois está tentando fazer
> DML num registro já lockado.. Olha só na consulta da V$SESSION que agora
> SIM as colunas de espera vão ser Populadas, veja a linha da sessão com
> SID=138 SERIAL#=23 com o evento enq: TX - row lock contention :
>
> SID SERIAL# USERNAME  STATUS   OSUSER   DIA_HORA_LOGON
> PROGRAM   MODULE TERMINAL
> OSUSER OBJECT_NAME
> EVENT   ROW_WAIT_OBJ#
> ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_ROW# ROWID_DO_LOCK_WAIT
> --- --- -   --
> - -- 
> -- --
> -- --
> -- --- - --
>  91  13 SYS   ACTIVE   jlchi_00020/09 09:59:05 SQL
> Developer SQL Developer  unknown
> jlchi_000  I_OBJ5 SQL*Net
> message to client
> 40  1   10992 0
>  49   1   ACTIVE   SISTEMA  20/09 09:56:46
> ORACLE.EXE (Q000) StreamsDELL15RSE
> SISTEMAAQ$_SUBSCRIBER_TABLE_PRIMARY   Streams AQ:
> qmn slave idle wait
> 5698  1   11729 0
> ...
> 138  23 SCOTT ACTIVE   DELL15RSE\jlchi_000  20/09 12:20:23
> sqlplus.exe   SQL*Plus   DELL15RSE
> DELL15RSE\jlchi_000EMPenq: TX - row
> lock contention   20065
> 4 349 7 AAAE5hAAEFdAAH
> 139   1   ACTIVE   SISTEMA  20/09 09:56:46
> ORACLE.EXE (Q002) StreamsDELL15RSE
> SISTEMA   Streams AQ:
> waiting for time management or cleanup tasks   -1
> 0   0 0
> ...
>  47  23 SCOTT INACTIVE DELL15RSE\jlchi_000  20/09 10:59:25
> sqlplus.exe   SQL*Plus   DELL15RSE
> DELL15RSE\jlchi_000   SQL*Net
> message from client
> -1  0   0 0
>
> ...
>  46   1   ACTIVE   SISTEMA  20/09 09:56:26
> ORACLE.EXE (SMON)DELL15RSE
> SISTEMA   smon
> timer
> 0  3 256 0
>
>  27 linhas selecionadas
>
> ==> veja que o segundo SELECT.. FOR UPDATE já 'congelou' esperando o LOCK
> da primeira linha lida na query :
>
> SYSTEM:@XE:SQL>select * from SCOTT.EMP where rowid='AAAE5hAAEFdAAH';
>
>  EMPNO ENAME  JOB  MGR HIREDATESAL
> COMM DEPTNO
> -- -- - --  -- --
> --
>   7788 SCOTT  ANALYST 7566 19/04/87
> 300020
>
> SYSTEM:@XE:SQL>
>
>  ==>> OKDOC ??? O que vc ** TEM ** que fazer agora está Claro : confirmar
> que ABSOLUTAMENTE NÃO TEM COMO teu Aplicativo deixar o usuário sair da tela
> e/ou abrir nova tela (que vai fazer novo SELECT FOR UPDATE!!) com uma
> Transação já aberta *** E *** (certamente junto com o DBA deles!!) usar
> essas queries para MONITORAR as sessões do usuário que tá reclamando,
> refazendo passo-a-passo junto com ele as Ações que ele fez
>
>  []s
>
>Chiappa
> 
>


Re: [oracle_br] Ajuda com Delphi pode ser remunerada.

2017-09-20 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Ops, caí no limite de texto de mensagem, xô re-enviar o resto do exemplo...


==> Agora vou tentar lockar/acessar com DML em OUTRA SESSÃo as linhas já 
lockadas : no caso vou fazer um SELECT.. FOR UPDATE mas a lógica é a mesma para 
Qualquer Outro DML :

SCOTT#2:@XE:SQL>select * from emp where deptno=20 and empno > 7567 for update;

==> vc não vê aqui mas a sessão ficou CONGELADA, pois está tentando fazer DML 
num registro já lockado.. Olha só na consulta da V$SESSION que agora SIM as 
colunas de espera vão ser Populadas, veja a linha da sessão com SID=138 
SERIAL#=23 com o evento enq: TX - row lock contention :

SID SERIAL# USERNAME  STATUS   OSUSER   DIA_HORA_LOGON PROGRAM  
 MODULE TERMINAL OSUSER OBJECT_NAME 
   EVENT   
ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_ROW# ROWID_DO_LOCK_WAIT
--- --- -   -- 
- --  
-- -- 
-- -- 
-- --- - --
 91  13 SYS   ACTIVE   jlchi_00020/09 09:59:05 SQL 
Developer SQL Developer  unknown  jlchi_000  
I_OBJ5 SQL*Net message to client
  40  1   10992 0   

 49   1   ACTIVE   SISTEMA  20/09 09:56:46 ORACLE.EXE 
(Q000) StreamsDELL15RSESISTEMA
AQ$_SUBSCRIBER_TABLE_PRIMARY   Streams AQ: qmn slave idle wait  
5698  1   11729 0   

...
138  23 SCOTT ACTIVE   DELL15RSE\jlchi_000  20/09 12:20:23 sqlplus.exe  
 SQL*Plus   DELL15RSEDELL15RSE\jlchi_000EMP 
   enq: TX - row lock contention
   20065  4 349 7 AAAE5hAAEFdAAH
139   1   ACTIVE   SISTEMA  20/09 09:56:46 ORACLE.EXE 
(Q002) StreamsDELL15RSESISTEMA  
 Streams AQ: waiting for time management or cleanup tasks   
-1  0   0 0   
...
 47  23 SCOTT INACTIVE DELL15RSE\jlchi_000  20/09 10:59:25 sqlplus.exe  
 SQL*Plus   DELL15RSEDELL15RSE\jlchi_000
   SQL*Net message from client  
  -1  0   0 0   

...
 46   1   ACTIVE   SISTEMA  20/09 09:56:26 ORACLE.EXE 
(SMON)DELL15RSESISTEMA  
 smon timer 
 0  3 256 0   

 27 linhas selecionadas 

==> veja que o segundo SELECT.. FOR UPDATE já 'congelou' esperando o LOCK da 
primeira linha lida na query :

SYSTEM:@XE:SQL>select * from SCOTT.EMP where rowid='AAAE5hAAEFdAAH';

 EMPNO ENAME  JOB  MGR HIREDATESAL   COMM 
DEPTNO
-- -- - --  -- -- 
--
  7788 SCOTT  ANALYST 7566 19/04/87   3000  
  20

SYSTEM:@XE:SQL>

 ==>> OKDOC ??? O que vc ** TEM ** que fazer agora está Claro : confirmar que 
ABSOLUTAMENTE NÃO TEM COMO teu Aplicativo deixar o usuário sair da tela e/ou 
abrir nova tela (que vai fazer novo SELECT FOR UPDATE!!) com uma Transação já 
aberta *** E *** (certamente junto com o DBA deles!!) usar essas queries para 
MONITORAR as sessões do usuário que tá reclamando, refazendo passo-a-passo 
junto com ele as Ações que ele fez
 
 []s
 
   Chiappa

Re: [oracle_br] Ajuda com Delphi pode ser remunerada.

2017-09-20 Por tôpico Luis Freitas lfreita...@yahoo.com [oracle_br]
Eduardo,
   Talvez na sua base de desenvolvimento só você esteja usando?
   Quando está em produção, o primeiro usuário que roda o select, bloqueia os 
registros. Se fizer uma query que volta vários registros, vai bloqueando todos 
eles.
   O segundo usuário que tentar consultar a mesma coisa vai ter esse 
comportamento de "travar".
   Para liberar o lock tem que fazer o rollback ou commit assim que for feita a 
próxima consulta ou fechada a tela, mesmo que não tenha sido feita nenhuma 
alteração (update). Ou seja, se o usuário fizer outra consulta, mesmo após 
fechar os cursores, as linhas consultadas anteriormente continuam bloqueadas.
   Existe o "select ... for update nowait", pode-se informar um tempo em 
segundos para esperar também, "select ... for update nowait 5" por exemplo. 
Esse em vez de travar vai retornar um erro, mas não deve resolver o seu 
problema ai.
   Você pode consultar a v$locked_object, v$lock, dba_blockers ou dba_waiters 
para ver os bloqueios, quais tabelas são e quais as sessões que estão 
bloqueando. O problema é que elas não vão indicar quais linhas das tabelas 
estão bloqueadas. Se seguir o caminho das transações ativas usando outras views 
se chega até o numero dos blocos, mas para achar as linhas não conheço outro 
meio além de fazer um "block dump" e analisar a "interested transaction list" 
no trace gerado, o que não é uma coisa simples de fazer.
Atc,
Luis Freitas

 

   

 On Tuesday, September 19, 2017 9:45 PM, "Eduardo Perdomo panc...@gmail.com 
[oracle_br]"  wrote:
 

     Obrigado pelo retorno.Eu uso o select for update, commit quando o usuário 
confirma e rollback quando cancela.Na minha base de desenvolvimento funciona 
normal, mas em produção o cliente/dba alega que o programa está travando um 
módulo especifico aleatóriamente.Qual select eu poderia verificar se deixei 
algum registro locado ao fechar o programa ?

On Tue, Sep 19, 2017 at 12:12 PM, Luis Freitas lfreita...@yahoo.com [oracle_br] 
 wrote:

     Eduardo,
   Não trabalho com Delphi, mas as ferramentas de 4a geração usam duas formas 
de lock:
Lock otimista:
   Usa algum campo com o numero da alteração, e quando você tenta salvar um 
registro alterado em outro lugar ou outra sessão, o provedor de dados retorna 
um erro. O lock é feito apenas entre a verificação do numero de alteração e o 
update dos dados, quando é disparada alguma ação de salvamento.
Lock pessimista:
   Faz o bloqueio no banco de dados, usando um comando "SELECT  FOR UPDATE" 
ou coisa parecida. Outras sessões que tentem alterar algum registro lido irão 
"travar", como você está descrevendo.
   Se você está vendo esse travamento dentro da mesma instancia da aplicação, 
num mesmo computador, o provedor de dados que está usando no Delphi deve estar 
abrindo sessões de banco separadas para cada "modulo" que você está abrindo.
   Tem duas soluções para esse problema:
- Fazer o Delphi compartilhar uma sessão unica para todos os módulos, talvez 
haja alguma configuração no seu provedor de dados para isso. Você não mencionou 
se está usando o BDE, ou ODBC, ou outra coisa.
- Efetuar explicitamente um "commit" ou "rollback", o que irá liberar o lock no 
banco de dados. É preciso efetuar o commit ou rollback mesmo que você não tenha 
alterado dados. Pode ter alguma forma de fazer isso implicitamente também, com 
algum comando do provedor de dados.
Atc,
Luis Freitas  



 On Tuesday, September 19, 2017 5:32 AM, "Eduardo Perdomo panc...@gmail.com 
[oracle_br]"  wrote:
 

     Bom dia.
Alguém trabalha com Delphi?
Preciso de ajuda para entender como deslocar um registro, pois aparentemente 
estou conseguindo lockar, mas outros módulos estão travando devido ao lock. 
Algum problema na parte de liberar o registro. Posso remunerar se for o caso.
Me add no WhatsApp 21968458592.
Obrigado.   

  



-- 

Eduardo PerdomoConsultor de ImplantaçãoGrupo PC Sistemas - www.grupopc.com.br 
(21) 6845-8592pancary@gmail.comeduardo.perd...@pcinformatica.com.brBlog: 
eduardo.perdomo.nom.br  #yiv3381933495 -- #yiv3381933495ygrp-mkp {border:1px 
solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv3381933495 
#yiv3381933495ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv3381933495 
#yiv3381933495ygrp-mkp #yiv3381933495hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv3381933495 #yiv3381933495ygrp-mkp #yiv3381933495ads 
{margin-bottom:10px;}#yiv3381933495 #yiv3381933495ygrp-mkp .yiv3381933495ad 
{padding:0 0;}#yiv3381933495 #yiv3381933495ygrp-mkp .yiv3381933495ad p 
{margin:0;}#yiv3381933495 #yiv3381933495ygrp-mkp .yiv3381933495ad a 
{color:#ff;text-decoration:none;}#yiv3381933495 #yiv3381933495ygrp-sponsor 
#yiv3381933495ygrp-lc {font-family:Arial;}#yiv3381933495 
#yiv3381933495ygrp-sponsor #yiv3381933495ygrp-lc #yiv3381933495hd {margin:10px 
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv3381933495 

Re: [oracle_br] Ajuda com Delphi pode ser remunerada.

2017-09-19 Por tôpico Eduardo Perdomo panc...@gmail.com [oracle_br]
Obrigado pelo retorno.
Eu uso o select for update, commit quando o usuário confirma e rollback
quando cancela.
Na minha base de desenvolvimento funciona normal, mas em produção o
cliente/dba alega que o programa está travando um módulo especifico
aleatóriamente.
Qual select eu poderia verificar se deixei algum registro locado ao fechar
o programa ?


On Tue, Sep 19, 2017 at 12:12 PM, Luis Freitas lfreita...@yahoo.com
[oracle_br]  wrote:

>
>
> Eduardo,
>
>Não trabalho com Delphi, mas as ferramentas de 4a geração usam duas
> formas de lock:
>
> Lock otimista:
>
>Usa algum campo com o numero da alteração, e quando você tenta salvar
> um registro alterado em outro lugar ou outra sessão, o provedor de dados
> retorna um erro. O lock é feito apenas entre a verificação do numero de
> alteração e o update dos dados, quando é disparada alguma ação de
> salvamento.
>
> Lock pessimista:
>
>Faz o bloqueio no banco de dados, usando um comando "SELECT  FOR
> UPDATE" ou coisa parecida. Outras sessões que tentem alterar algum registro
> lido irão "travar", como você está descrevendo.
>
>Se você está vendo esse travamento dentro da mesma instancia da
> aplicação, num mesmo computador, o provedor de dados que está usando no
> Delphi deve estar abrindo sessões de banco separadas para cada "modulo" que
> você está abrindo.
>
>Tem duas soluções para esse problema:
>
> - Fazer o Delphi compartilhar uma sessão unica para todos os módulos,
> talvez haja alguma configuração no seu provedor de dados para isso. Você
> não mencionou se está usando o BDE, ou ODBC, ou outra coisa.
>
> - Efetuar explicitamente um "commit" ou "rollback", o que irá liberar o
> lock no banco de dados. É preciso efetuar o commit ou rollback mesmo que
> você não tenha alterado dados. Pode ter alguma forma de fazer isso
> implicitamente também, com algum comando do provedor de dados.
>
> Atc,
> Luis Freitas
>
>
>
>
> On Tuesday, September 19, 2017 5:32 AM, "Eduardo Perdomo panc...@gmail.com
> [oracle_br]"  wrote:
>
>
>
> Bom dia.
> Alguém trabalha com Delphi?
> Preciso de ajuda para entender como deslocar um registro, pois
> aparentemente estou conseguindo lockar, mas outros módulos estão travando
> devido ao lock. Algum problema na parte de liberar o registro. Posso
> remunerar se for o caso.
> Me add no WhatsApp 21968458592.
> Obrigado.
>
>
> 
>



-- 

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


Re: [oracle_br] Ajuda com Delphi pode ser remunerada.

2017-09-19 Por tôpico Luis Freitas lfreita...@yahoo.com [oracle_br]
Eduardo,
   Não trabalho com Delphi, mas as ferramentas de 4a geração usam duas formas 
de lock:
Lock otimista:
   Usa algum campo com o numero da alteração, e quando você tenta salvar um 
registro alterado em outro lugar ou outra sessão, o provedor de dados retorna 
um erro. O lock é feito apenas entre a verificação do numero de alteração e o 
update dos dados, quando é disparada alguma ação de salvamento.
Lock pessimista:
   Faz o bloqueio no banco de dados, usando um comando "SELECT  FOR UPDATE" 
ou coisa parecida. Outras sessões que tentem alterar algum registro lido irão 
"travar", como você está descrevendo.
   Se você está vendo esse travamento dentro da mesma instancia da aplicação, 
num mesmo computador, o provedor de dados que está usando no Delphi deve estar 
abrindo sessões de banco separadas para cada "modulo" que você está abrindo.
   Tem duas soluções para esse problema:
- Fazer o Delphi compartilhar uma sessão unica para todos os módulos, talvez 
haja alguma configuração no seu provedor de dados para isso. Você não mencionou 
se está usando o BDE, ou ODBC, ou outra coisa.
- Efetuar explicitamente um "commit" ou "rollback", o que irá liberar o lock no 
banco de dados. É preciso efetuar o commit ou rollback mesmo que você não tenha 
alterado dados. Pode ter alguma forma de fazer isso implicitamente também, com 
algum comando do provedor de dados.
Atc,
Luis Freitas  



 On Tuesday, September 19, 2017 5:32 AM, "Eduardo Perdomo panc...@gmail.com 
[oracle_br]"  wrote:
 

     Bom dia.
Alguém trabalha com Delphi?
Preciso de ajuda para entender como deslocar um registro, pois aparentemente 
estou conseguindo lockar, mas outros módulos estão travando devido ao lock. 
Algum problema na parte de liberar o registro. Posso remunerar se for o caso.
Me add no WhatsApp 21968458592.
Obrigado.   #yiv2325418919 -- #yiv2325418919ygrp-mkp {border:1px solid 
#d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv2325418919 
#yiv2325418919ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv2325418919 
#yiv2325418919ygrp-mkp #yiv2325418919hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv2325418919 #yiv2325418919ygrp-mkp #yiv2325418919ads 
{margin-bottom:10px;}#yiv2325418919 #yiv2325418919ygrp-mkp .yiv2325418919ad 
{padding:0 0;}#yiv2325418919 #yiv2325418919ygrp-mkp .yiv2325418919ad p 
{margin:0;}#yiv2325418919 #yiv2325418919ygrp-mkp .yiv2325418919ad a 
{color:#ff;text-decoration:none;}#yiv2325418919 #yiv2325418919ygrp-sponsor 
#yiv2325418919ygrp-lc {font-family:Arial;}#yiv2325418919 
#yiv2325418919ygrp-sponsor #yiv2325418919ygrp-lc #yiv2325418919hd {margin:10px 
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv2325418919 
#yiv2325418919ygrp-sponsor #yiv2325418919ygrp-lc .yiv2325418919ad 
{margin-bottom:10px;padding:0 0;}#yiv2325418919 #yiv2325418919actions 
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv2325418919 
#yiv2325418919activity 
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv2325418919
 #yiv2325418919activity span {font-weight:700;}#yiv2325418919 
#yiv2325418919activity span:first-child 
{text-transform:uppercase;}#yiv2325418919 #yiv2325418919activity span a 
{color:#5085b6;text-decoration:none;}#yiv2325418919 #yiv2325418919activity span 
span {color:#ff7900;}#yiv2325418919 #yiv2325418919activity span 
.yiv2325418919underline {text-decoration:underline;}#yiv2325418919 
.yiv2325418919attach 
{clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 
0;width:400px;}#yiv2325418919 .yiv2325418919attach div a 
{text-decoration:none;}#yiv2325418919 .yiv2325418919attach img 
{border:none;padding-right:5px;}#yiv2325418919 .yiv2325418919attach label 
{display:block;margin-bottom:5px;}#yiv2325418919 .yiv2325418919attach label a 
{text-decoration:none;}#yiv2325418919 blockquote {margin:0 0 0 
4px;}#yiv2325418919 .yiv2325418919bold 
{font-family:Arial;font-size:13px;font-weight:700;}#yiv2325418919 
.yiv2325418919bold a {text-decoration:none;}#yiv2325418919 dd.yiv2325418919last 
p a {font-family:Verdana;font-weight:700;}#yiv2325418919 dd.yiv2325418919last p 
span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv2325418919 
dd.yiv2325418919last p span.yiv2325418919yshortcuts 
{margin-right:0;}#yiv2325418919 div.yiv2325418919attach-table div div a 
{text-decoration:none;}#yiv2325418919 div.yiv2325418919attach-table 
{width:400px;}#yiv2325418919 div.yiv2325418919file-title a, #yiv2325418919 
div.yiv2325418919file-title a:active, #yiv2325418919 
div.yiv2325418919file-title a:hover, #yiv2325418919 div.yiv2325418919file-title 
a:visited {text-decoration:none;}#yiv2325418919 div.yiv2325418919photo-title a, 
#yiv2325418919 div.yiv2325418919photo-title a:active, #yiv2325418919 
div.yiv2325418919photo-title a:hover, #yiv2325418919 
div.yiv2325418919photo-title a:visited {text-decoration:none;}#yiv2325418919 
div#yiv2325418919ygrp-mlmsg #yiv2325418919ygrp-msg p a 

[oracle_br] Ajuda com Delphi pode ser remunerada.

2017-09-19 Por tôpico Eduardo Perdomo panc...@gmail.com [oracle_br]
Bom dia.
Alguém trabalha com Delphi?
Preciso de ajuda para entender como deslocar um registro, pois
aparentemente estou conseguindo lockar, mas outros módulos estão travando
devido ao lock. Algum problema na parte de liberar o registro. Posso
remunerar se for o caso.
Me add no WhatsApp 21968458592.
Obrigado.


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


[oracle_br] Ajuda com enq: TM - contention

2016-12-12 Por tôpico 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


RES: [oracle_br] 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]
o de 2016 15:23
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Ajuda Erro ORA-00445: background process "J000" did 
not start after 120 seconds

 

  

Certo mas aconteceu alguma coisa, o log nao iria pipocar sozinho...

 

A conexao deve ter caído e voltado em seguida.. intervalo de tempo suficiente 
pra provocar algum erro

 

Olha, a mensagem da algumas outras dicas do que pode ter ocorrido  =>  " O000" 
did not start after 120 secondsErrors"

 

 

Você mesmo cuida do storage ou outra pessoa ?  Sugiro olhar os logs por volta 
de 12:00 e 13:00 e claro, olhar o proprio log de eventos do servidor Windows 

 

Posso estar enganado, mas pra mim essa base parou na hora do almoço e por volta 
de 12:27 foi a hora fatidica.. até que teve intervenção manual para o banco 
voltar

 

 

 

 

On 23 September 2016 at 15:05, 'Yahoo' alisson...@yahoo.com.br 
<mailto:alisson...@yahoo.com.br>  [oracle_br] <oracle_br@yahoogrupos.com.br 
<mailto:oracle_br@yahoogrupos.com.br> > wrote:

  

Olá boa tarde!

 

Ela tem um storage conectada a ela e é ASM, Stande Alone.. Tem backup sim.

 

Na verdade o ASM estava ativo ...

 

Fri Sep 23 12:27:02 2016

 

Errors in file 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_cjq0_6948.trc  
(incident=684822):

 

Olhei as conexões com o Storage tudo ok.. 

 

 

 

 

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

 

  

Boa tarde

 

Essa maquina está ligada a algum storage e usando ASM ?  É RAC ou stand alone ? 
  Tem backup ?

 

Parece que caiu a conexao com o ASM, por isso pipocando as mensagens de erro..

 

ORA-15064: communication failure with ASM instance

 

 

 

On 23 September 2016 at 14:14,  <mailto:alisson...@yahoo.com.br> 
alisson...@yahoo.com.br [oracle_br] < <mailto:oracle_br@yahoogrupos.com.br> 
oracle_br@yahoogrupos.com.br> wrote:

  

boa tarde Senhores.

 

Hoje comecei a receber erros (ORA-00445: background process "J000" did not 
start after 120 seconds) e com isso o banco parou , tive que levanta-lo 
novamente.

 

Meu ambiente encontrasse em Windows server 2012 R2, temos 128G de memorias. 
versão do Oracle Sendo a versão do oracle 11r .

 

parallel_servers_target  integer 224

memory_targetbig integer 78336M

memory_max_targetbig integer 78336M

 

 

RESOURCE_NAME CURRENT_UTILIZATION MAX_UTILIZATION INITIAL_ALLOCATION LIMIT_VALUE
processes 388 453   3000   3000
sessions 401 480   4536   4536
enqueue_locks 532 590  52700  52700
enqueue_resources 136 157  20176  UNLIMITED
ges_procs 0 0  0  0
ges_ress 0 0  0  UNLIMITED
ges_locks 0 0  0  UNLIMITED
ges_cache_ress 0 0  0  UNLIMITED
ges_reg_msgs 0 0  0  UNLIMITED
ges_big_msgs 0 0  0  UNLIMITED
ges_rsv_msgs 0 0  0  0
gcs_resources 0 0  0  0
gcs_shadows 0 0  0  0
dml_locks 3 3  19956  UNLIMITED
temporary_table_locks 0 0  UNLIMITED  UNLIMITED
transactions 4 4   4989  UNLIMITED
branches 0 2   4989  UNLIMITED
cmtcallbk 0 1   4989  UNLIMITED
max_rollback_segments 24 24   4989  65535
sort_segment_locks 92 103  UNLIMITED  UNLIMITED
k2q_locks 0 0   9072  UNLIMITED
max_shared_servers 1 1  UNLIMITED  UNLIMITED
parallel_max_servers 0 32560   3600

 

 

 

Bom o erro começou aqui e no momento do erro não vi processamento e nem memoria 
alta ...

 

ORA-03113: end-of-file on communication channelORA-15064: communication failure 
with ASM instanceErrors in file 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_asmb_5144.trc:NOTE:
 ASMB terminatingFri Sep 23 12:31:12 2016Incident details in: 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\incident\incdir_684734\bdeducar_arc1_6372_i684734.trcORA-00240:
 control file enqueue held for more than 120 secondsErrors in file 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_arc1_6372.trc  
(incident=684734):Fri Sep 23 12:31:11 2016Trace dumping is performing 
id=[cdmp_20160923122908]Fri Sep 23 12:29:08 2016  Current log# 1 seq# 184145 
mem# 3: E:\BDEDUCAR\ONLINELOG\O1_MF_1_C54Q6NK8_.LOG  Current log# 1 seq# 184145 
mem# 2: +DATA/bdeducar/onlinelog/group_1.355.896477093  Current log# 1 seq# 
184145 mem# 1: C:\APP\REDO\REDO01A.LOG  Current log# 1 seq# 184145 mem# 0: 
E:\REDO\REDO01A.LOGThread 1 advanced to log sequence 184145 (LGWR 
switch)Incident details in: 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\incident\incdir_684623\bdeducar_lgwr_6700_i684623.trcORA

Re: [oracle_br] 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]
Certo mas aconteceu alguma coisa, o log nao iria pipocar sozinho...

A conexao deve ter caído e voltado em seguida.. intervalo de tempo
suficiente pra provocar algum erro

Olha, a mensagem da algumas outras dicas do que pode ter ocorrido  =>  " O000"
did not start after 120 secondsErrors"


Você mesmo cuida do storage ou outra pessoa ?  Sugiro olhar os logs por
volta de 12:00 e 13:00 e claro, olhar o proprio log de eventos do servidor
Windows

Posso estar enganado, mas pra mim essa base parou na hora do almoço e por
volta de 12:27 foi a hora fatidica.. até que teve intervenção manual para o
banco voltar




On 23 September 2016 at 15:05, 'Yahoo' alisson...@yahoo.com.br [oracle_br] <
oracle_br@yahoogrupos.com.br> wrote:

>
>
> Olá boa tarde!
>
>
>
> Ela tem um storage conectada a ela e é ASM, Stande Alone.. Tem backup sim.
>
>
>
> Na verdade o ASM estava ativo ...
>
>
>
> Fri Sep 23 12:27:02 2016
>
>
>
> Errors in file 
> c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_cjq0_6948.trc
> (incident=684822):
>
>
>
> Olhei as conexões com o Storage tudo ok..
>
>
>
>
>
>
>
>
>
> *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
> *Enviada em:* sexta-feira, 23 de setembro de 2016 14:48
> *Para:* oracle_br@yahoogrupos.com.br
> *Assunto:* Re: [oracle_br] Ajuda Erro ORA-00445: background process
> "J000" did not start after 120 seconds
>
>
>
>
>
> Boa tarde
>
>
>
> Essa maquina está ligada a algum storage e usando ASM ?  É RAC ou stand
> alone ?   Tem backup ?
>
>
>
> Parece que caiu a conexao com o ASM, por isso pipocando as mensagens de
> erro..
>
>
>
> ORA-15064: communication failure with ASM instance
>
>
>
>
>
>
>
> On 23 September 2016 at 14:14, alisson...@yahoo.com.br [oracle_br] <
> oracle_br@yahoogrupos.com.br> wrote:
>
>
>
> boa tarde Senhores.
>
>
>
> Hoje comecei a receber erros (ORA-00445: background process "J000" did not
> start after 120 seconds) e com isso o banco parou , tive que levanta-lo
> novamente.
>
>
>
> Meu ambiente encontrasse em Windows server 2012 R2, temos 128G de
> memorias. versão do Oracle Sendo a versão do oracle 11r .
>
>
>
> parallel_servers_target  integer 224
>
> memory_targetbig integer 78336M
>
> memory_max_targetbig integer 78336M
>
>
>
>
>
> RESOURCE_NAME CURRENT_UTILIZATION MAX_UTILIZATION
> INITIAL_ALLOCATION LIMIT_VALUE
> processes 388 453   3000   3000
> sessions 401 480   4536   4536
> enqueue_locks 532 590  52700  52700
> enqueue_resources 136 157  20176  UNLIMITED
> ges_procs 0 0  0  0
> ges_ress 0 0  0  UNLIMITED
> ges_locks 0 0  0  UNLIMITED
> ges_cache_ress 0 0  0  UNLIMITED
> ges_reg_msgs 0 0  0  UNLIMITED
> ges_big_msgs 0 0  0  UNLIMITED
> ges_rsv_msgs 0 0  0  0
> gcs_resources 0 0  0  0
> gcs_shadows 0 0  0  0
> dml_locks 3 3  19956  UNLIMITED
> temporary_table_locks 0 0  UNLIMITED  UNLIMITED
> transactions 4 4   4989  UNLIMITED
> branches 0 2   4989  UNLIMITED
> cmtcallbk 0 1   4989  UNLIMITED
> max_rollback_segments 24 24   4989  65535
> sort_segment_locks 92 103  UNLIMITED  UNLIMITED
> k2q_locks 0 0   9072  UNLIMITED
> max_shared_servers 1 1  UNLIMITED  UNLIMITED
> parallel_max_servers 0 32560   3600
>
>
>
>
>
>
>
> Bom o erro começou aqui e no momento do erro não vi processamento e nem
> memoria alta ...
>
>
>
> ORA-03113: end-of-file on communication channelORA-15064: communication
> failure with ASM instanceErrors in file c:\app\administrator\diag\
> rdbms\bdeducar\bdeducar\trace\bdeducar_asmb_5144.trc:NOTE: ASMB
> terminatingFri Sep 23 12:31:12 2016Incident details in:
> c:\app\administrator\diag\rdbms\bdeducar\bdeducar\incident\incdir_684734\
> bdeducar_arc1_6372_i684734.trcORA-00240: control file enqueue held for
> more than 120 secondsErrors in file c:\app\administrator\diag\
> rdbms\bdeducar\bdeducar\trace\bdeducar_arc1_6372.trc
> (incident=684734):Fri Sep 23 12:31:11 2016Trace dumping is performing
> id=[cdmp_20160923122908]Fri Sep 23 12:29:08 2016  Current log# 1 seq#
> 184145 mem# 3: E:\BDEDUCAR\ONLINELOG\O1_MF_1_C54Q6NK8_.LOG  Current log#
> 1 seq# 184145 mem# 2: +DATA/bdeducar/onlinelog/group_1.355.896477093
> Current log# 1 seq# 184145 mem# 1: C:\APP\REDO\REDO01A.LOG  Current log# 1
> seq# 184145 mem# 0: E:\REDO\REDO01A.LOGThread 1 advanced to log sequence
> 184145 (LGWR switch)Incident details

RES: [oracle_br] 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]
Olá boa tarde!

 

Ela tem um storage conectada a ela e é ASM, Stande Alone.. Tem backup sim.

 

Na verdade o ASM estava ativo ...

 

Fri Sep 23 12:27:02 2016

 

Errors in file 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_cjq0_6948.trc  
(incident=684822):

 

Olhei as conexões com o Storage tudo ok.. 

 

 

 

 

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

 

  

Boa tarde

 

Essa maquina está ligada a algum storage e usando ASM ?  É RAC ou stand alone ? 
  Tem backup ?

 

Parece que caiu a conexao com o ASM, por isso pipocando as mensagens de erro..

 

ORA-15064: communication failure with ASM instance

 

 

 

On 23 September 2016 at 14:14, alisson...@yahoo.com.br 
<mailto:alisson...@yahoo.com.br>  [oracle_br] <oracle_br@yahoogrupos.com.br 
<mailto:oracle_br@yahoogrupos.com.br> > wrote:

  

boa tarde Senhores.

 

Hoje comecei a receber erros (ORA-00445: background process "J000" did not 
start after 120 seconds) e com isso o banco parou , tive que levanta-lo 
novamente.

 

Meu ambiente encontrasse em Windows server 2012 R2, temos 128G de memorias. 
versão do Oracle Sendo a versão do oracle 11r .

 

parallel_servers_target  integer 224

memory_targetbig integer 78336M

memory_max_targetbig integer 78336M

 

 

RESOURCE_NAME CURRENT_UTILIZATION MAX_UTILIZATION INITIAL_ALLOCATION LIMIT_VALUE
processes 388 453   3000   3000
sessions 401 480   4536   4536
enqueue_locks 532 590  52700  52700
enqueue_resources 136 157  20176  UNLIMITED
ges_procs 0 0  0  0
ges_ress 0 0  0  UNLIMITED
ges_locks 0 0  0  UNLIMITED
ges_cache_ress 0 0  0  UNLIMITED
ges_reg_msgs 0 0  0  UNLIMITED
ges_big_msgs 0 0  0  UNLIMITED
ges_rsv_msgs 0 0  0  0
gcs_resources 0 0  0  0
gcs_shadows 0 0  0  0
dml_locks 3 3  19956  UNLIMITED
temporary_table_locks 0 0  UNLIMITED  UNLIMITED
transactions 4 4   4989  UNLIMITED
branches 0 2   4989  UNLIMITED
cmtcallbk 0 1   4989  UNLIMITED
max_rollback_segments 24 24   4989  65535
sort_segment_locks 92 103  UNLIMITED  UNLIMITED
k2q_locks 0 0   9072  UNLIMITED
max_shared_servers 1 1  UNLIMITED  UNLIMITED
parallel_max_servers 0 32560   3600

 

 

 

Bom o erro começou aqui e no momento do erro não vi processamento e nem memoria 
alta ...

 

ORA-03113: end-of-file on communication channelORA-15064: communication failure 
with ASM instanceErrors in file 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_asmb_5144.trc:NOTE:
 ASMB terminatingFri Sep 23 12:31:12 2016Incident details in: 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\incident\incdir_684734\bdeducar_arc1_6372_i684734.trcORA-00240:
 control file enqueue held for more than 120 secondsErrors in file 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_arc1_6372.trc  
(incident=684734):Fri Sep 23 12:31:11 2016Trace dumping is performing 
id=[cdmp_20160923122908]Fri Sep 23 12:29:08 2016  Current log# 1 seq# 184145 
mem# 3: E:\BDEDUCAR\ONLINELOG\O1_MF_1_C54Q6NK8_.LOG  Current log# 1 seq# 184145 
mem# 2: +DATA/bdeducar/onlinelog/group_1.355.896477093  Current log# 1 seq# 
184145 mem# 1: C:\APP\REDO\REDO01A.LOG  Current log# 1 seq# 184145 mem# 0: 
E:\REDO\REDO01A.LOGThread 1 advanced to log sequence 184145 (LGWR 
switch)Incident details in: 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\incident\incdir_684623\bdeducar_lgwr_6700_i684623.trcORA-00445:
 background process "O000" did not start after 120 secondsErrors in file 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_lgwr_6700.trc  
(incident=684623):Fri Sep 23 12:29:07 2016Trace dumping is performing 
id=[cdmp_20160923122759]Fri Sep 23 12:27:59 2016Incident details in: 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\incident\incdir_684622\bdeducar_lgwr_6700_i684622.trcORA-00240:
 control file enqueue held for more than 120 secondsErrors in file 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_lgwr_6700.trc  
(incident=684622):Fri Sep 23 12:27:58 2016Trace dumping is performing 
id=[cdmp_20160923122703]Fri Sep 23 12:27:03 2016Errors in file 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_cjq0_6948.trc:kkjcre1p:
 unable to spawn jobq slave process Incident details in: 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\incident\incdir_684822\bdeducar_cjq0_6948_i684822.trcORA-00445:
 background process "J000" did not start after 120 secondsErrors in file 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_cjq0_6948.trc  
(incident=684822):Fri Sep 23 12:27:02 2016

 

Alguem já passou por esse problema ?

 

 

 

 





Re: [oracle_br] 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]
Boa tarde

Essa maquina está ligada a algum storage e usando ASM ?  É RAC ou stand
alone ?   Tem backup ?

Parece que caiu a conexao com o ASM, por isso pipocando as mensagens de
erro..

ORA-15064: communication failure with ASM instance



On 23 September 2016 at 14:14, alisson...@yahoo.com.br [oracle_br] <
oracle_br@yahoogrupos.com.br> wrote:

>
>
> boa tarde Senhores.
>
> Hoje comecei a receber erros (ORA-00445: background process "J000" did not
> start after 120 seconds) e com isso o banco parou , tive que levanta-lo
> novamente.
>
> Meu ambiente encontrasse em Windows server 2012 R2, temos 128G de
> memorias. versão do Oracle Sendo a versão do oracle 11r .
>
> parallel_servers_target  integer 224
> memory_targetbig integer 78336M
> memory_max_targetbig integer 78336M
>
>
> RESOURCE_NAME CURRENT_UTILIZATION MAX_UTILIZATION
> INITIAL_ALLOCATION LIMIT_VALUE
> processes 388 453   3000   3000
> sessions 401 480   4536   4536
> enqueue_locks 532 590  52700  52700
> enqueue_resources 136 157  20176  UNLIMITED
> ges_procs 0 0  0  0
> ges_ress 0 0  0  UNLIMITED
> ges_locks 0 0  0  UNLIMITED
> ges_cache_ress 0 0  0  UNLIMITED
> ges_reg_msgs 0 0  0  UNLIMITED
> ges_big_msgs 0 0  0  UNLIMITED
> ges_rsv_msgs 0 0  0  0
> gcs_resources 0 0  0  0
> gcs_shadows 0 0  0  0
> dml_locks 3 3  19956  UNLIMITED
> temporary_table_locks 0 0  UNLIMITED  UNLIMITED
> transactions 4 4   4989  UNLIMITED
> branches 0 2   4989  UNLIMITED
> cmtcallbk 0 1   4989  UNLIMITED
> max_rollback_segments 24 24   4989  65535
> sort_segment_locks 92 103  UNLIMITED  UNLIMITED
> k2q_locks 0 0   9072  UNLIMITED
> max_shared_servers 1 1  UNLIMITED  UNLIMITED
> parallel_max_servers 0 32560   3600
>
>
>
> Bom o erro começou aqui e no momento do erro não vi processamento e nem
> memoria alta ...
>
> ORA-03113: end-of-file on communication channelORA-15064: communication
> failure with ASM instanceErrors in file c:\app\administrator\diag\
> rdbms\bdeducar\bdeducar\trace\bdeducar_asmb_5144.trc:NOTE: ASMB
> terminatingFri Sep 23 12:31:12 2016Incident details in:
> c:\app\administrator\diag\rdbms\bdeducar\bdeducar\incident\incdir_684734\
> bdeducar_arc1_6372_i684734.trcORA-00240: control file enqueue held for
> more than 120 secondsErrors in file c:\app\administrator\diag\
> rdbms\bdeducar\bdeducar\trace\bdeducar_arc1_6372.trc
> (incident=684734):Fri Sep 23 12:31:11 2016Trace dumping is performing
> id=[cdmp_20160923122908]Fri Sep 23 12:29:08 2016  Current log# 1 seq#
> 184145 mem# 3: E:\BDEDUCAR\ONLINELOG\O1_MF_1_C54Q6NK8_.LOG  Current log#
> 1 seq# 184145 mem# 2: +DATA/bdeducar/onlinelog/group_1.355.896477093
> Current log# 1 seq# 184145 mem# 1: C:\APP\REDO\REDO01A.LOG  Current log# 1
> seq# 184145 mem# 0: E:\REDO\REDO01A.LOGThread 1 advanced to log sequence
> 184145 (LGWR switch)Incident details in: c:\app\administrator\diag\
> rdbms\bdeducar\bdeducar\incident\incdir_684623\bdeducar_lgwr_6700_i684623.trcORA-00445:
> background process "O000" did not start after 120 secondsErrors in file
> c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_lgwr_6700.trc
> (incident=684623):Fri Sep 23 12:29:07 2016Trace dumping is performing
> id=[cdmp_20160923122759]Fri Sep 23 12:27:59 2016Incident details in:
> c:\app\administrator\diag\rdbms\bdeducar\bdeducar\incident\incdir_684622\
> bdeducar_lgwr_6700_i684622.trcORA-00240: control file enqueue held for
> more than 120 secondsErrors in file c:\app\administrator\diag\
> rdbms\bdeducar\bdeducar\trace\bdeducar_lgwr_6700.trc
> (incident=684622):Fri Sep 23 12:27:58 2016Trace dumping is performing
> id=[cdmp_20160923122703]Fri Sep 23 12:27:03 2016Errors in file
> c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\
> bdeducar_cjq0_6948.trc:kkjcre1p: unable to spawn jobq slave process
> Incident details in: c:\app\administrator\diag\rdbms\bdeducar\bdeducar\
> incident\incdir_684822\bdeducar_cjq0_6948_i684822.trcORA-00445:
> background process "J000" did not start after 120 secondsErrors in file
> c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_cjq0_6948.trc
> (incident=684822):Fri Sep 23 12:27:02 2016
>
> Alguem já passou por esse problema ?
>
>
>
> 
>


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

2016-09-23 Por tôpico alisson...@yahoo.com.br [oracle_br]
boa tarde Senhores.
 

 Hoje comecei a receber erros (ORA-00445: background process "J000" did not 
start after 120 seconds) e com isso o banco parou , tive que levanta-lo 
novamente.
 

 Meu ambiente encontrasse em Windows server 2012 R2, temos 128G de memorias. 
versão do Oracle Sendo a versão do oracle 11r .
 

 parallel_servers_target  integer 224
 memory_targetbig integer 78336M
 memory_max_targetbig integer 78336M
 

 

 RESOURCE_NAME CURRENT_UTILIZATION MAX_UTILIZATION INITIAL_ALLOCATION 
LIMIT_VALUE
processes 388 453   3000   3000
sessions 401 480   4536   4536
enqueue_locks 532 590  52700  52700
enqueue_resources 136 157  20176  UNLIMITED
ges_procs 0 0  0  0
ges_ress 0 0  0  UNLIMITED
ges_locks 0 0  0  UNLIMITED
ges_cache_ress 0 0  0  UNLIMITED
ges_reg_msgs 0 0  0  UNLIMITED
ges_big_msgs 0 0  0  UNLIMITED
ges_rsv_msgs 0 0  0  0
gcs_resources 0 0  0  0
gcs_shadows 0 0  0  0
dml_locks 3 3  19956  UNLIMITED
temporary_table_locks 0 0  UNLIMITED  UNLIMITED
transactions 4 4   4989  UNLIMITED
branches 0 2   4989  UNLIMITED
cmtcallbk 0 1   4989  UNLIMITED
max_rollback_segments 24 24   4989  65535
sort_segment_locks 92 103  UNLIMITED  UNLIMITED
k2q_locks 0 0   9072  UNLIMITED
max_shared_servers 1 1  UNLIMITED  UNLIMITED
parallel_max_servers 0 32560   3600

 

 

 

 Bom o erro começou aqui e no momento do erro não vi processamento e nem 
memoria alta ...
 

 ORA-03113: end-of-file on communication channelORA-15064: communication 
failure with ASM instanceErrors in file 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_asmb_5144.trc:NOTE:
 ASMB terminatingFri Sep 23 12:31:12 2016Incident details in: 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\incident\incdir_684734\bdeducar_arc1_6372_i684734.trcORA-00240:
 control file enqueue held for more than 120 secondsErrors in file 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_arc1_6372.trc  
(incident=684734):Fri Sep 23 12:31:11 2016Trace dumping is performing 
id=[cdmp_20160923122908]Fri Sep 23 12:29:08 2016  Current log# 1 seq# 184145 
mem# 3: E:\BDEDUCAR\ONLINELOG\O1_MF_1_C54Q6NK8_.LOG  Current log# 1 seq# 184145 
mem# 2: +DATA/bdeducar/onlinelog/group_1.355.896477093  Current log# 1 seq# 
184145 mem# 1: C:\APP\REDO\REDO01A.LOG  Current log# 1 seq# 184145 mem# 0: 
E:\REDO\REDO01A.LOGThread 1 advanced to log sequence 184145 (LGWR 
switch)Incident details in: 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\incident\incdir_684623\bdeducar_lgwr_6700_i684623.trcORA-00445:
 background process "O000" did not start after 120 secondsErrors in file 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_lgwr_6700.trc  
(incident=684623):Fri Sep 23 12:29:07 2016Trace dumping is performing 
id=[cdmp_20160923122759]Fri Sep 23 12:27:59 2016Incident details in: 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\incident\incdir_684622\bdeducar_lgwr_6700_i684622.trcORA-00240:
 control file enqueue held for more than 120 secondsErrors in file 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_lgwr_6700.trc  
(incident=684622):Fri Sep 23 12:27:58 2016Trace dumping is performing 
id=[cdmp_20160923122703]Fri Sep 23 12:27:03 2016Errors in file 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_cjq0_6948.trc:kkjcre1p:
 unable to spawn jobq slave process Incident details in: 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\incident\incdir_684822\bdeducar_cjq0_6948_i684822.trcORA-00445:
 background process "J000" did not start after 120 secondsErrors in file 
c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_cjq0_6948.trc  
(incident=684822):Fri Sep 23 12:27:02 2016
 

 Alguem já passou por esse problema ?
 

 

 



RES: [oracle_br] Ajuda - SQL

2016-04-11 Por tôpico Fernando - Unisul ferna...@unisul.br [oracle_br]
Oi Emerson, fiz uma função para fazer o que você deseja

 

 

Passo os parâmetros (lista de valores (string) , qual a posição do token que 
quero ler, e por ultimo qual o delimitador que irei usa)

 

Exemplo

 

Pegar o cpf de cada registro

 

Cpf := fc_get_token(t_1 ,4,` | `);

 

 

create or replace function fc_get_token(

   listaValores_in  varchar2,

   posicao_in   number,

   delimitador_in   varchar2 := ','

) returnvarchar2

is

   inicioPosicao number;

   fimPosicaonumber;

begin

   if posicao_in = 1 then

   inicioPosicao := 1;

   else

   inicioPosicao := instr(listaValores_in, delimitador_in, 1, posicao_in - 
1);

   if inicioPosicao = 0 then

   return null;

   else

   inicioPosicao := inicioPosicao + length(delimitador_in);

   end if;

   end if;

 

   fimPosicao := instr(listaValores_in, delimitador_in, inicioPosicao, 1);

 

   if fimPosicao = 0 then

   return substr(listaValores_in, inicioPosicao);

   else

   return substr(listaValores_in, inicioPosicao, fimPosicao - 
inicioPosicao);

   end if;

exception

   when others then

raise_application_error(-20001,'Erro Busca Token ' || sqlerrm);

 

end fc_get_token;

 

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Enviada em: quinta-feira, 7 de abril de 2016 16:01
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Ajuda - SQL

 

  

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 
<mailto:diegopm...@gmail.com>  [oracle_br] <oracle_br@yahoogrupos.com.br 
<mailto: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_1
VALUES ('99|151|JOANA PRADO |08227525490  |BRA|0||');
 
INSERT INTO t_1
VALUES ('99|152|LUCIANA XIMENES SILVA||BRA|0||');
 
INSERT INTO t_1
VALUES ('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) tipo
FROM 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] Ajuda - SQL

2016-04-07 Por tôpico Gustavo Guedes guedescomputa...@gmail.com [oracle_br]
Desculpe: *INSTR é o caminho, rsrs.

[]'s

Em 7 de abril de 2016 19:24, Gustavo Guedes 
escreveu:

> Diego, tudo bem?
>
> Já fiz isso usando a função INSTR do PL/SQL.
> Era algo que combinava as funções INSTR SUBSTR e REPLACE
> Não tenho o exemplo aqui agora, mas a dinâmica é algo do tipo:
>
> Com o INSTR vc consegue obter a posição da ocorrência do "||" (duplo
> pipe). No seu caso, retornaria 33, se não me engano. Daí, com o REPLACE e o
> SUBSTR, vc consegue substituir os caracteres das posições 33 e 34 (||) por
> um NULL, por exemplo.
> Dê uma olhada na função REGEXP_INSTR tb. Ela pode ajudar.
>
> Abraços, e desculpe por não postar um exemplo aqui agora. Mas SUBSTR é o
> caminho, rs.
>
> []'s
>
> Em 7 de abril de 2016 16:24, Diego Melo diegopm...@gmail.com [oracle_br] <
> oracle_br@yahoogrupos.com.br> escreveu:
>
>>
>>
>> @Emerson,
>>
>> a sua função deu certo. Muito obrigado.
>>
>> @Angelo,
>> quiando vem vazio, deve ficar null mesmo, o CPF foi só um exemplo que me
>> veio na cabeça, mas são outros campos na verdade, que tem que vir vazio ou
>> null mesmo.
>>
>> Valeu 
>>
>> 2016-04-07 16:12 GMT-03:00 angelo angelolis...@gmail.com [oracle_br] <
>> oracle_br@yahoogrupos.com.br>:
>>
>>>
>>>
>>> Boa tarde,  Diego,
>>>
>>> Será que ao invés de dar ruim na parada, não deu bom não?
>>>
>>> Pois não ficou claro sobre o que deveria acontecer no caso em que não
>>> vier o cpf na string.
>>>
>>> To entendendo que se nao veio nada, entraria vazio mesmo, melhor, os
>>> pipes.
>>> Você está importando isso de algum arquivo edi ? Campo cpf veio vazio,
>>>  o que entraria no lugar ? ou tinha cpf e nao inseriu ?
>>>
>>>
>>> 99|152|LUCIANA XIMENES SILVA|o que fazer quando aqui for vazio? |BRA|0||
>>>
>>>
>>>
>>>
>>>
>>> 2016-04-07 15:57 GMT-03:00 Diego Melo diegopm...@gmail.com [oracle_br] <
>>> oracle_br@yahoogrupos.com.br>:
>>>


 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




>>>
>> 
>>
>
>
>
> --
> Atenciosamente,
> *Gustavo Guedes de Sene*
>



-- 
Atenciosamente,
*Gustavo Guedes de Sene*


Re: [oracle_br] Ajuda - SQL

2016-04-07 Por tôpico Gustavo Guedes guedescomputa...@gmail.com [oracle_br]
Diego, tudo bem?

Já fiz isso usando a função INSTR do PL/SQL.
Era algo que combinava as funções INSTR SUBSTR e REPLACE
Não tenho o exemplo aqui agora, mas a dinâmica é algo do tipo:

Com o INSTR vc consegue obter a posição da ocorrência do "||" (duplo pipe).
No seu caso, retornaria 33, se não me engano. Daí, com o REPLACE e o
SUBSTR, vc consegue substituir os caracteres das posições 33 e 34 (||) por
um NULL, por exemplo.
Dê uma olhada na função REGEXP_INSTR tb. Ela pode ajudar.

Abraços, e desculpe por não postar um exemplo aqui agora. Mas SUBSTR é o
caminho, rs.

[]'s

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

>
>
> @Emerson,
>
> a sua função deu certo. Muito obrigado.
>
> @Angelo,
> quiando vem vazio, deve ficar null mesmo, o CPF foi só um exemplo que me
> veio na cabeça, mas são outros campos na verdade, que tem que vir vazio ou
> null mesmo.
>
> Valeu 
>
> 2016-04-07 16:12 GMT-03:00 angelo angelolis...@gmail.com [oracle_br] <
> oracle_br@yahoogrupos.com.br>:
>
>>
>>
>> Boa tarde,  Diego,
>>
>> Será que ao invés de dar ruim na parada, não deu bom não?
>>
>> Pois não ficou claro sobre o que deveria acontecer no caso em que não
>> vier o cpf na string.
>>
>> To entendendo que se nao veio nada, entraria vazio mesmo, melhor, os
>> pipes.
>> Você está importando isso de algum arquivo edi ? Campo cpf veio vazio,  o
>> que entraria no lugar ? ou tinha cpf e nao inseriu ?
>>
>>
>> 99|152|LUCIANA XIMENES SILVA|o que fazer quando aqui for vazio? |BRA|0||
>>
>>
>>
>>
>>
>> 2016-04-07 15:57 GMT-03:00 Diego Melo diegopm...@gmail.com [oracle_br] <
>> oracle_br@yahoogrupos.com.br>:
>>
>>>
>>>
>>> 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
>>>
>>>
>>>
>>>
>>
> 
>



-- 
Atenciosamente,
*Gustavo Guedes de Sene*


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] Ajuda - SQL

2016-04-07 Por tôpico Diego Melo diegopm...@gmail.com [oracle_br]
@Emerson,

a sua função deu certo. Muito obrigado.

@Angelo,
quiando vem vazio, deve ficar null mesmo, o CPF foi só um exemplo que me
veio na cabeça, mas são outros campos na verdade, que tem que vir vazio ou
null mesmo.

Valeu 

2016-04-07 16:12 GMT-03:00 angelo angelolis...@gmail.com [oracle_br] <
oracle_br@yahoogrupos.com.br>:

>
>
> Boa tarde,  Diego,
>
> Será que ao invés de dar ruim na parada, não deu bom não?
>
> Pois não ficou claro sobre o que deveria acontecer no caso em que não vier
> o cpf na string.
>
> To entendendo que se nao veio nada, entraria vazio mesmo, melhor, os pipes.
> Você está importando isso de algum arquivo edi ? Campo cpf veio vazio,  o
> que entraria no lugar ? ou tinha cpf e nao inseriu ?
>
>
> 99|152|LUCIANA XIMENES SILVA|o que fazer quando aqui for vazio? |BRA|0||
>
>
>
>
>
> 2016-04-07 15:57 GMT-03:00 Diego Melo diegopm...@gmail.com [oracle_br] <
> oracle_br@yahoogrupos.com.br>:
>
>>
>>
>> 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] Ajuda - SQL

2016-04-07 Por tôpico angelo angelolis...@gmail.com [oracle_br]
Boa tarde,  Diego,

Será que ao invés de dar ruim na parada, não deu bom não?

Pois não ficou claro sobre o que deveria acontecer no caso em que não vier
o cpf na string.

To entendendo que se nao veio nada, entraria vazio mesmo, melhor, os pipes.
Você está importando isso de algum arquivo edi ? Campo cpf veio vazio,  o
que entraria no lugar ? ou tinha cpf e nao inseriu ?


99|152|LUCIANA XIMENES SILVA|o que fazer quando aqui for vazio? |BRA|0||





2016-04-07 15:57 GMT-03:00 Diego Melo diegopm...@gmail.com [oracle_br] <
oracle_br@yahoogrupos.com.br>:

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


[oracle_br] Ajuda - SQL

2016-04-07 Por tôpico Diego Melo diegopm...@gmail.com [oracle_br]
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] Ajuda no SQL

2015-08-13 Por tôpico Otavio Wollny otavio.wol...@gmail.com [oracle_br]
Boa tarde.


Marcos veja o artigo abaixo que explica como usar as cláusulas INNER JOIN,
LEFT JOIN e RIGHT JOIN:


http://www.devmedia.com.br/clausulas-inner-join-left-join-e-right-join-associacao-de-tabelas-sql-server-2008-parte-2/18930




Att,


Otávio.










Em 13 de agosto de 2015 12:59, informat...@usinamoreno.com.br [oracle_br] 
oracle_br@yahoogrupos.com.br escreveu:




 Boa tarde


 Tenho a seguinte situação


 Tabela1 = colunas (Data,Seq, Valor)

 Tabela2 = Colunas (Data,Codigo)


 Tabela1   Tabela2

 ID Data   Valor ID Data   Codigo

 1 01/08/20151 1   05/08/2015  5566

 1 03/08/201521   07/08/2015  4455

 1 04/08/20153

 1 05/08/20154

 1 06/08/20155

 1 07/08/20155

 1 08/08/20155

 1 09/08/20155


 Preciso de SQL com as duas que me retorne da seguinte forma


 IDData   Seq  Valor  Codigo

 1 01/08/2015   1   10

 1 03/08/2015   2   11

 1 04/08/2015   3   12

 1 05/08/2015   4   13 5566

 1 06/08/2015   5   14 5566

 1 07/08/2015   5   15 4455

 1 08/08/2015   5   16 4455

 1 09/08/2015   5   17   4455


 A Key da tabela 1 == ID + Data + Seq

 A Key da tabela 2 == ID + Data

 Desde já agradeço


 Marcos









--
Otavio S Wollny


[oracle_br] Ajuda no SQL

2015-08-13 Por tôpico informat...@usinamoreno.com.br [oracle_br]
Boa tarde
 

 Tenho a seguinte situação
 

 Tabela1 = colunas (Data,Seq, Valor)
 Tabela2 = Colunas (Data,Codigo)
 

 Tabela1   Tabela2
 ID Data   Valor ID Data   Codigo
 1 01/08/20151 1   05/08/2015  5566

 1 03/08/201521   07/08/2015  4455
 1 04/08/20153

 1 05/08/20154

 1 06/08/20155

 1 07/08/20155

 1 08/08/20155

 1 09/08/20155

 

 Preciso de SQL com as duas que me retorne da seguinte forma
 

 IDData   Seq  Valor  Codigo
 1 01/08/2015   1   10   

 1 03/08/2015   2   11
 1 04/08/2015   3   12

 1 05/08/2015   4   13 5566

 1 06/08/2015   5   14 5566

 1 07/08/2015   5   15 4455

 1 08/08/2015   5   16 4455

 1 09/08/2015   5   17   4455

 

 A Key da tabela 1 == ID + Data + Seq
 A Key da tabela 2 == ID + Data
 

 Desde já agradeço
 

 Marcos


[oracle_br] Ajuda ASM

2015-07-21 Por tôpico Priscila Viana priska....@gmail.com [oracle_br]
Olá,
preciso de uma ajudinha,
o rapaz aqui de SO entrou de férias e gostaria de fazer algo seguindo o
padrão que ele fez para as luns do ASM.


as luns estão são essas:
   5. c1d5 COMPELNT-Compellent Vol-0605 cyl 49930 alt 2 hd 8 sec 525
  /virtual-devices@100/channel-devices@200/disk@5
   6. c1d6 COMPELNT-Compellent Vol-0605 cyl 63935 alt 2 hd 32 sec 205
  /virtual-devices@100/channel-devices@200/disk@6


E estão aqui:
hsmg500v[root] /dev/dsk # ls c1d5*
c1d5s0  c1d5s1  c1d5s2  c1d5s3  c1d5s4  c1d5s5  c1d5s6  c1d5s7
hsmg500v[root] /dev/dsk # cd ../rdsk
hsmg500v[root] /dev/rdsk # ls c1d5*
c1d5s0  c1d5s1  c1d5s2  c1d5s3  c1d5s4  c1d5s5  c1d5s6  c1d5s7
hsmg500v[root] /dev/rdsk # cd ../dsk

hsmg500v[root] /dev/dsk # ls c1d6*
c1d6s0  c1d6s1  c1d6s2  c1d6s3  c1d6s4  c1d6s5  c1d6s6  c1d6s7
hsmg500v[root] /dev/dsk # cd ../rdsk
hsmg500v[root] /dev/rdsk # ls c1d6*
c1d6s0  c1d6s1  c1d6s2  c1d6s3  c1d6s4  c1d6s5  c1d6s6  c1d6s7








SQL show parameter asm_diskstring;
NAME TYPEVALUE
 ---
--
asm_diskstring   string  /dev/asmdisk


obs: eu poderia adicionar mais um diretório no parâmetro, porem não quero,
quero seguir esse padrão, e não estou achando nada que oriente como fazer.


Como faço para dispô-las no diretório do asm?


Esse:
hsmg500v[root] /dev/asmdisk #
hsmg500v[root] /dev/asmdisk # ls -ltr
total 0
crw-rw   1 grid asmadmin 272, 20 Jul 14 16:31 asmdisk001
crw-rw   1 grid asmadmin 272, 44 Jul 16 10:25 asmdisk004
crw-rw   1 grid asmadmin 272, 52 Jul 16 10:25 asmdisk005
crw-rw   1 grid asmadmin 272, 36 Jul 20 22:00 asmdisk003
crw-rw   1 grid asmadmin 272, 28 Jul 21 05:05 asmdisk002


Obrigada.
Priscila Viana.


[oracle_br] Ajuda - RAC não balanceia conexões.

2015-07-13 Por tôpico José Mario Barduchi zegue...@gmail.com [oracle_br]
Srs., boa tarde

Poderiam me ajudar.

Tenho um Oracle RAC 11g (11.2.0.4) rodando em Oracle Linux 6.6. São 2 nós
apenas.

Por limitações da aplicação, o cliente que é usado para conexão é o client
8.

Sei que não é homologado, etc mas a situação é essa e não temos como mudar.

A dúvida é que o TNS está configurado a moda antiga, sem usar scan e as
conexões não balanceiam.

Se bate conexões para o nó 2 se inverto a ordem dos IP's e coloco o ip
desse nó na primeira linha.

Os configurações de local e remote listener estão corretas.

Tenho outro cliente nessa mesma situação mas lá esse cenário funciona. Bati
as confs com esse cliente e tudo está exatamente igual.

Com certeza é algo no client já que quando partimos de um client 10g, ou
mesmo de um jdbc ele faz o balanceamento corretamente.

Alguém já passou por isso ou pode ter uma ideia para tentar contornar isso?

Obrigado



*José Mario Barduchi*
*Cel: +5511 96630-7082*
*Database Administrator - Oracle*


Re: [oracle_br] ajuda tunning sql

2015-07-08 Por tôpico Vitor Junior vitorj...@gmail.com [oracle_br]
Bom dia.
Orfeu, sem conhecer as tabelas envolvidas, plano de execução e pelo menos
um trace, suspeito que ninguém vai conseguir te ajudar aqui... hehehe




Att,/Regards,


Vitor Jr.
Infraestrutura / Infrastructure Team
Oracle 11g DBA Certified Professional - OCP
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

2015-07-08 9:26 GMT-03:00 Orfeu Lima orfeu.l...@gmail.com [oracle_br] 
oracle_br@yahoogrupos.com.br:



 bom dia a todos.
 O select abaixo está executando com um tempo de 20s, e gostaria de pedir a
 ajuda para poder estar melhorando.
 Segue abaixo o script e em anexo o plano de execução.
 Obrigado.
 select cd_terminal as cd
 , cast(data_captura as timestamp) as dataUltima
 , cast(data_adm as timestamp) as dataFechamento
 , CASE tipoUltima WHEN 4 THEN 'SAIDA' ELSE 'ENTRADA' END as fluxo
 , valorSaques as valorSaques
 , valorRecargas as valorRecargas
 , valorDepositos as valorDepositos
 , totalSaques as totalSaques
 , totalRecargas as totalRecargas
 , totalDepositos as totalDepositos
 , denominacoes as denominacaoUltima
 , dados_adm as denominacaoFechamento from (
 with r as (
 select t.cd_terminal
 , c.cd_tipo_transacao as tipo
 , sum(t.valor) as valor
 , count(*) as total
 from transacao_siscap t, codigo_transacao c, (
 select busca.terminal
 , busca.tipo as tipoUltima
 , busca.data_captura
 , busca.denominacoes
 , busca.data_adm
 , busca.dados_adm
 from (
 select trn.cd_terminal as terminal, trn.*, adm.* from (
 select ultima_adm.cd_terminal,
 data_captura as data_adm,
 dados_adm
 from (
 select adm.cd_terminal, nvl(max(id), 0) as id
 from transacao_adm_siscap adm,
 terminal atm
 where adm.cd_terminal = atm.cd_terminal
 and cd_proc = 31
 and atm.ativo = 1
 group by adm.cd_terminal
 ) ultima_adm, transacao_adm_siscap adm
 where ultima_adm.id = adm.id
 ) adm, (
 select trn.cd_terminal, cod.cd_tipo_transacao as tipo
 , trn.data_captura as data_captura
 , e.denominacao_movimentada as denominacoes from (
 select trn.cd_terminal, max(data_captura) as data_captura
 from transacao_siscap trn, transacao_ext_siscap e, terminal atm
 where trn.cd_terminal = atm.cd_terminal
 and trn.id = e.transacao_id
 and e.denominacao_movimentada is not null
 and atm.ativo = 1
 and cd_status in (03, 04, 05)
 group by trn.cd_terminal
 ) ultima, transacao_siscap trn, transacao_ext_siscap e,
 codigo_transacao cod
 where trn.cd_terminal = ultima.cd_terminal
 and cod.cd_proc = trn.cd_proc
 and ultima.data_captura = trn.data_captura
 and trn.id = e.transacao_id
 ) trn
 where adm.cd_terminal = trn.cd_terminal
 ) busca
 ) busca1
 where t.cd_proc = c.cd_proc
 and t.cd_terminal = busca1.terminal
 and t.data_captura between busca1.data_adm and busca1.data_captura
 and t.cd_status IN ('03', '04', '05')
 and c.cd_tipo_transacao in (7,4,2,13)
 group by t.cd_terminal
 , c.cd_tipo_transacao
 ) select t.cd_terminal AS cd_terminal
 , nvl((select valor from r where tipo = 4 and r.cd_terminal =
 t.cd_terminal), 0) as valorSaques
 , nvl((select valor from r where tipo = 7 and r.cd_terminal =
 t.cd_terminal), 0)
 +nvl((select valor from r where tipo = 13 and r.cd_terminal =
 t.cd_terminal), 0) as valorRecargas
 , nvl((select valor from r where tipo = 2 and r.cd_terminal =
 t.cd_terminal), 0) as valorDepositos
 , nvl((select total from r where tipo = 4 and r.cd_terminal =
 t.cd_terminal), 0) as totalSaques
 , nvl((select total from r where tipo = 7 and r.cd_terminal =
 t.cd_terminal), 0)
 +nvl((select total from r where tipo = 13 and r.cd_terminal =
 t.cd_terminal), 0) as totalRecargas
 , nvl((select total from r where tipo = 2 and r.cd_terminal =
 t.cd_terminal), 0) as totalDepositos
 from terminal t
 where t.ativo = 1
 ) busca2, (
 select busca.terminal
 , busca.tipoUltima
 , busca.data_captura
 , busca.denominacoes
 , busca.data_adm
 , busca.dados_adm
 from (
 select trn.cd_terminal as terminal, trn.cd_tipo_transacao as
 tipoUltima, trn.*, adm.* from (
 select ultima_adm.cd_terminal,
 data_captura as data_adm,
 dados_adm
 from (
 select adm.cd_terminal, nvl(max(id), 0) as id
 from transacao_adm_siscap adm,
 terminal atm
 where adm.cd_terminal = atm.cd_terminal
 and cd_proc = 31
 and atm.ativo = 1
 group by adm.cd_terminal
 ) ultima_adm, transacao_adm_siscap adm
 where ultima_adm.id = adm.id
 ) adm, (
 select trn.cd_terminal
 , c.cd_tipo_transacao
 , trn.data_captura as data_captura
 , e.denominacao_movimentada as denominacoes from (
 select trn.cd_terminal, max(data_captura) as data_captura
 from transacao_siscap trn, transacao_ext_siscap e, terminal atm
 where trn.cd_terminal = atm.cd_terminal
 and trn.id = e.transacao_id
 and e.denominacao_movimentada is not null
 and atm.ativo = 1
 and cd_status in (03, 

[oracle_br] ajuda tunning sql

2015-07-08 Por tôpico Orfeu Lima orfeu.l...@gmail.com [oracle_br]
bom dia a todos.
O select abaixo está executando com um tempo de 20s, e gostaria de pedir a
ajuda para poder estar melhorando.
Segue abaixo o script e em anexo o plano de execução.
Obrigado.
select cd_terminal as cd
, cast(data_captura as timestamp) as dataUltima
, cast(data_adm as timestamp) as dataFechamento
, CASE tipoUltima WHEN 4 THEN 'SAIDA' ELSE 'ENTRADA' END as fluxo
, valorSaques as valorSaques
, valorRecargas as valorRecargas
, valorDepositos as valorDepositos
, totalSaques as totalSaques
, totalRecargas as totalRecargas
, totalDepositos as totalDepositos
, denominacoes as denominacaoUltima
, dados_adm as denominacaoFechamento from (
  with r as (
select t.cd_terminal
, c.cd_tipo_transacao as tipo
, sum(t.valor) as valor
, count(*) as total
from transacao_siscap t, codigo_transacao c, (
  select busca.terminal
  , busca.tipo as tipoUltima
  , busca.data_captura
  , busca.denominacoes
  , busca.data_adm
  , busca.dados_adm
  from (
select trn.cd_terminal as terminal, trn.*, adm.* from (
  select ultima_adm.cd_terminal,
  data_captura as data_adm,
  dados_adm
  from (
select adm.cd_terminal, nvl(max(id), 0) as id
from transacao_adm_siscap adm,
terminal atm
where adm.cd_terminal = atm.cd_terminal
and cd_proc = 31
and atm.ativo = 1
group by adm.cd_terminal
  ) ultima_adm, transacao_adm_siscap adm
  where ultima_adm.id = adm.id
) adm, (
  select trn.cd_terminal, cod.cd_tipo_transacao as tipo
  , trn.data_captura as data_captura
  , e.denominacao_movimentada as denominacoes from (
select trn.cd_terminal, max(data_captura) as data_captura
from transacao_siscap trn, transacao_ext_siscap e, terminal atm
where trn.cd_terminal = atm.cd_terminal
and trn.id = e.transacao_id
and e.denominacao_movimentada is not null
and atm.ativo = 1
and cd_status in (03, 04, 05)
group by trn.cd_terminal
  ) ultima, transacao_siscap trn, transacao_ext_siscap e,
codigo_transacao cod
  where trn.cd_terminal = ultima.cd_terminal
  and cod.cd_proc = trn.cd_proc
  and ultima.data_captura = trn.data_captura
  and trn.id = e.transacao_id
) trn
where adm.cd_terminal = trn.cd_terminal
  ) busca
) busca1
where t.cd_proc = c.cd_proc
and t.cd_terminal = busca1.terminal
and t.data_captura between busca1.data_adm and busca1.data_captura
and t.cd_status IN ('03', '04', '05')
and c.cd_tipo_transacao in (7,4,2,13)
group by t.cd_terminal
, c.cd_tipo_transacao
  ) select t.cd_terminal AS cd_terminal
  , nvl((select valor from r where tipo = 4 and r.cd_terminal =
t.cd_terminal), 0) as valorSaques
  , nvl((select valor from r where tipo = 7 and r.cd_terminal =
t.cd_terminal), 0)
+nvl((select valor from r where tipo = 13 and r.cd_terminal =
t.cd_terminal), 0) as valorRecargas
  , nvl((select valor from r where tipo = 2 and r.cd_terminal =
t.cd_terminal), 0) as valorDepositos
  , nvl((select total from r where tipo = 4 and r.cd_terminal =
t.cd_terminal), 0) as totalSaques
  , nvl((select total from r where tipo = 7 and r.cd_terminal =
t.cd_terminal), 0)
+nvl((select total from r where tipo = 13 and r.cd_terminal =
t.cd_terminal), 0) as totalRecargas
  , nvl((select total from r where tipo = 2 and r.cd_terminal =
t.cd_terminal), 0) as totalDepositos
  from terminal t
  where t.ativo = 1
) busca2, (
  select busca.terminal
  , busca.tipoUltima
  , busca.data_captura
  , busca.denominacoes
  , busca.data_adm
  , busca.dados_adm
  from (
select trn.cd_terminal as terminal, trn.cd_tipo_transacao as
tipoUltima, trn.*, adm.* from (
  select ultima_adm.cd_terminal,
  data_captura as data_adm,
  dados_adm
  from (
select adm.cd_terminal, nvl(max(id), 0) as id
from transacao_adm_siscap adm,
terminal atm
where adm.cd_terminal = atm.cd_terminal
and cd_proc = 31
and atm.ativo = 1
group by adm.cd_terminal
  ) ultima_adm, transacao_adm_siscap adm
  where ultima_adm.id = adm.id
) adm, (
  select trn.cd_terminal
  , c.cd_tipo_transacao
  , trn.data_captura as data_captura
  , e.denominacao_movimentada as denominacoes from (
select trn.cd_terminal, max(data_captura) as data_captura
from transacao_siscap trn, transacao_ext_siscap e, terminal atm
where trn.cd_terminal = atm.cd_terminal
and trn.id = e.transacao_id
and e.denominacao_movimentada is not null
and atm.ativo = 1
and cd_status in (03, 04, 05)
group by trn.cd_terminal
  ) ultima, transacao_siscap trn, transacao_ext_siscap e,
codigo_transacao c
  where trn.cd_terminal = ultima.cd_terminal
  and trn.cd_proc = c.cd_proc
 

Re: [oracle_br] ajuda tunning sql

2015-07-08 Por tôpico Orfeu Lima orfeu.l...@gmail.com [oracle_br]
desculpem, não sabia.
Vitor, posso estar te encaminhando para vc dar uma olhada??


2015-07-08 10:19 GMT-03:00 Vitor Junior vitorj...@gmail.com [oracle_br] 
oracle_br@yahoogrupos.com.br:



 Orfeu, o grupo não aceita anexos! :)



 Att,/Regards,


 Vitor Jr.
 Infraestrutura / Infrastructure Team
 Oracle 11g DBA Certified Professional - OCP
 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

 2015-07-08 10:18 GMT-03:00 Orfeu Lima orfeu.l...@gmail.com [oracle_br] 
 oracle_br@yahoogrupos.com.br:



 Vitor, eu enviei o plano de execução em anexo.


 2015-07-08 9:33 GMT-03:00 Vitor Junior vitorj...@gmail.com [oracle_br] 
 oracle_br@yahoogrupos.com.br:



 Bom dia.
 Orfeu, sem conhecer as tabelas envolvidas, plano de execução e pelo
 menos um trace, suspeito que ninguém vai conseguir te ajudar aqui... hehehe




 Att,/Regards,


 Vitor Jr.
 Infraestrutura / Infrastructure Team
 Oracle 11g DBA Certified Professional - OCP
 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

 2015-07-08 9:26 GMT-03:00 Orfeu Lima orfeu.l...@gmail.com [oracle_br] 
 oracle_br@yahoogrupos.com.br:



 bom dia a todos.
 O select abaixo está executando com um tempo de 20s, e gostaria de
 pedir a
 ajuda para poder estar melhorando.
 Segue abaixo o script e em anexo o plano de execução.
 Obrigado.
 select cd_terminal as cd
 , cast(data_captura as timestamp) as dataUltima
 , cast(data_adm as timestamp) as dataFechamento
 , CASE tipoUltima WHEN 4 THEN 'SAIDA' ELSE 'ENTRADA' END as fluxo
 , valorSaques as valorSaques
 , valorRecargas as valorRecargas
 , valorDepositos as valorDepositos
 , totalSaques as totalSaques
 , totalRecargas as totalRecargas
 , totalDepositos as totalDepositos
 , denominacoes as denominacaoUltima
 , dados_adm as denominacaoFechamento from (
 with r as (
 select t.cd_terminal
 , c.cd_tipo_transacao as tipo
 , sum(t.valor) as valor
 , count(*) as total
 from transacao_siscap t, codigo_transacao c, (
 select busca.terminal
 , busca.tipo as tipoUltima
 , busca.data_captura
 , busca.denominacoes
 , busca.data_adm
 , busca.dados_adm
 from (
 select trn.cd_terminal as terminal, trn.*, adm.* from (
 select ultima_adm.cd_terminal,
 data_captura as data_adm,
 dados_adm
 from (
 select adm.cd_terminal, nvl(max(id), 0) as id
 from transacao_adm_siscap adm,
 terminal atm
 where adm.cd_terminal = atm.cd_terminal
 and cd_proc = 31
 and atm.ativo = 1
 group by adm.cd_terminal
 ) ultima_adm, transacao_adm_siscap adm
 where ultima_adm.id = adm.id
 ) adm, (
 select trn.cd_terminal, cod.cd_tipo_transacao as tipo
 , trn.data_captura as data_captura
 , e.denominacao_movimentada as denominacoes from (
 select trn.cd_terminal, max(data_captura) as data_captura
 from transacao_siscap trn, transacao_ext_siscap e, terminal atm
 where trn.cd_terminal = atm.cd_terminal
 and trn.id = e.transacao_id
 and e.denominacao_movimentada is not null
 and atm.ativo = 1
 and cd_status in (03, 04, 05)
 group by trn.cd_terminal
 ) ultima, transacao_siscap trn, transacao_ext_siscap e,
 codigo_transacao cod
 where trn.cd_terminal = ultima.cd_terminal
 and cod.cd_proc = trn.cd_proc
 and ultima.data_captura = trn.data_captura
 and trn.id = e.transacao_id
 ) trn
 where adm.cd_terminal = trn.cd_terminal
 ) busca
 ) busca1
 where t.cd_proc = c.cd_proc
 and t.cd_terminal = busca1.terminal
 and t.data_captura between busca1.data_adm and busca1.data_captura
 and t.cd_status IN ('03', '04', '05')
 and c.cd_tipo_transacao in (7,4,2,13)
 group by t.cd_terminal
 , c.cd_tipo_transacao
 ) select t.cd_terminal AS cd_terminal
 , nvl((select valor from r where tipo = 4 and r.cd_terminal =
 t.cd_terminal), 0) as valorSaques
 , nvl((select valor from r where tipo = 7 and r.cd_terminal =
 t.cd_terminal), 0)
 +nvl((select valor from r where tipo = 13 and r.cd_terminal =
 t.cd_terminal), 0) as valorRecargas
 , nvl((select valor from r where tipo = 2 and r.cd_terminal =
 t.cd_terminal), 0) as valorDepositos
 , nvl((select total from r where tipo = 4 and r.cd_terminal =
 t.cd_terminal), 0) as totalSaques
 , nvl((select total from r where tipo = 7 and r.cd_terminal =
 t.cd_terminal), 0)
 +nvl((select total from r where tipo = 13 and r.cd_terminal =
 t.cd_terminal), 0) as totalRecargas
 , nvl((select total from r where tipo = 2 and r.cd_terminal =
 t.cd_terminal), 0) as totalDepositos
 from terminal t
 where 

Re: [oracle_br] ajuda tunning sql

2015-07-08 Por tôpico Orfeu Lima orfeu.l...@gmail.com [oracle_br]
Vitor, eu enviei o plano de execução em anexo.


2015-07-08 9:33 GMT-03:00 Vitor Junior vitorj...@gmail.com [oracle_br] 
oracle_br@yahoogrupos.com.br:



 Bom dia.
 Orfeu, sem conhecer as tabelas envolvidas, plano de execução e pelo menos
 um trace, suspeito que ninguém vai conseguir te ajudar aqui... hehehe




 Att,/Regards,


 Vitor Jr.
 Infraestrutura / Infrastructure Team
 Oracle 11g DBA Certified Professional - OCP
 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

 2015-07-08 9:26 GMT-03:00 Orfeu Lima orfeu.l...@gmail.com [oracle_br] 
 oracle_br@yahoogrupos.com.br:



 bom dia a todos.
 O select abaixo está executando com um tempo de 20s, e gostaria de pedir a
 ajuda para poder estar melhorando.
 Segue abaixo o script e em anexo o plano de execução.
 Obrigado.
 select cd_terminal as cd
 , cast(data_captura as timestamp) as dataUltima
 , cast(data_adm as timestamp) as dataFechamento
 , CASE tipoUltima WHEN 4 THEN 'SAIDA' ELSE 'ENTRADA' END as fluxo
 , valorSaques as valorSaques
 , valorRecargas as valorRecargas
 , valorDepositos as valorDepositos
 , totalSaques as totalSaques
 , totalRecargas as totalRecargas
 , totalDepositos as totalDepositos
 , denominacoes as denominacaoUltima
 , dados_adm as denominacaoFechamento from (
 with r as (
 select t.cd_terminal
 , c.cd_tipo_transacao as tipo
 , sum(t.valor) as valor
 , count(*) as total
 from transacao_siscap t, codigo_transacao c, (
 select busca.terminal
 , busca.tipo as tipoUltima
 , busca.data_captura
 , busca.denominacoes
 , busca.data_adm
 , busca.dados_adm
 from (
 select trn.cd_terminal as terminal, trn.*, adm.* from (
 select ultima_adm.cd_terminal,
 data_captura as data_adm,
 dados_adm
 from (
 select adm.cd_terminal, nvl(max(id), 0) as id
 from transacao_adm_siscap adm,
 terminal atm
 where adm.cd_terminal = atm.cd_terminal
 and cd_proc = 31
 and atm.ativo = 1
 group by adm.cd_terminal
 ) ultima_adm, transacao_adm_siscap adm
 where ultima_adm.id = adm.id
 ) adm, (
 select trn.cd_terminal, cod.cd_tipo_transacao as tipo
 , trn.data_captura as data_captura
 , e.denominacao_movimentada as denominacoes from (
 select trn.cd_terminal, max(data_captura) as data_captura
 from transacao_siscap trn, transacao_ext_siscap e, terminal atm
 where trn.cd_terminal = atm.cd_terminal
 and trn.id = e.transacao_id
 and e.denominacao_movimentada is not null
 and atm.ativo = 1
 and cd_status in (03, 04, 05)
 group by trn.cd_terminal
 ) ultima, transacao_siscap trn, transacao_ext_siscap e,
 codigo_transacao cod
 where trn.cd_terminal = ultima.cd_terminal
 and cod.cd_proc = trn.cd_proc
 and ultima.data_captura = trn.data_captura
 and trn.id = e.transacao_id
 ) trn
 where adm.cd_terminal = trn.cd_terminal
 ) busca
 ) busca1
 where t.cd_proc = c.cd_proc
 and t.cd_terminal = busca1.terminal
 and t.data_captura between busca1.data_adm and busca1.data_captura
 and t.cd_status IN ('03', '04', '05')
 and c.cd_tipo_transacao in (7,4,2,13)
 group by t.cd_terminal
 , c.cd_tipo_transacao
 ) select t.cd_terminal AS cd_terminal
 , nvl((select valor from r where tipo = 4 and r.cd_terminal =
 t.cd_terminal), 0) as valorSaques
 , nvl((select valor from r where tipo = 7 and r.cd_terminal =
 t.cd_terminal), 0)
 +nvl((select valor from r where tipo = 13 and r.cd_terminal =
 t.cd_terminal), 0) as valorRecargas
 , nvl((select valor from r where tipo = 2 and r.cd_terminal =
 t.cd_terminal), 0) as valorDepositos
 , nvl((select total from r where tipo = 4 and r.cd_terminal =
 t.cd_terminal), 0) as totalSaques
 , nvl((select total from r where tipo = 7 and r.cd_terminal =
 t.cd_terminal), 0)
 +nvl((select total from r where tipo = 13 and r.cd_terminal =
 t.cd_terminal), 0) as totalRecargas
 , nvl((select total from r where tipo = 2 and r.cd_terminal =
 t.cd_terminal), 0) as totalDepositos
 from terminal t
 where t.ativo = 1
 ) busca2, (
 select busca.terminal
 , busca.tipoUltima
 , busca.data_captura
 , busca.denominacoes
 , busca.data_adm
 , busca.dados_adm
 from (
 select trn.cd_terminal as terminal, trn.cd_tipo_transacao as
 tipoUltima, trn.*, adm.* from (
 select ultima_adm.cd_terminal,
 data_captura as data_adm,
 dados_adm
 from (
 select adm.cd_terminal, nvl(max(id), 0) as id
 from transacao_adm_siscap adm,
 terminal atm
 where adm.cd_terminal = atm.cd_terminal
 and cd_proc = 31
 and atm.ativo = 1
 group by adm.cd_terminal
 ) ultima_adm, transacao_adm_siscap adm
 where ultima_adm.id = adm.id
 ) adm, (
 select trn.cd_terminal
 , c.cd_tipo_transacao
 , trn.data_captura as data_captura
 , e.denominacao_movimentada as denominacoes from (
 select trn.cd_terminal, max(data_captura) as data_captura
 from transacao_siscap trn, 

Re: [oracle_br] ajuda tunning sql

2015-07-08 Por tôpico Vitor Junior vitorj...@gmail.com [oracle_br]
Orfeu, o grupo não aceita anexos! :)



Att,/Regards,


Vitor Jr.
Infraestrutura / Infrastructure Team
Oracle 11g DBA Certified Professional - OCP
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

2015-07-08 10:18 GMT-03:00 Orfeu Lima orfeu.l...@gmail.com [oracle_br] 
oracle_br@yahoogrupos.com.br:



 Vitor, eu enviei o plano de execução em anexo.


 2015-07-08 9:33 GMT-03:00 Vitor Junior vitorj...@gmail.com [oracle_br] 
 oracle_br@yahoogrupos.com.br:



 Bom dia.
 Orfeu, sem conhecer as tabelas envolvidas, plano de execução e pelo menos
 um trace, suspeito que ninguém vai conseguir te ajudar aqui... hehehe




 Att,/Regards,


 Vitor Jr.
 Infraestrutura / Infrastructure Team
 Oracle 11g DBA Certified Professional - OCP
 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

 2015-07-08 9:26 GMT-03:00 Orfeu Lima orfeu.l...@gmail.com [oracle_br] 
 oracle_br@yahoogrupos.com.br:



 bom dia a todos.
 O select abaixo está executando com um tempo de 20s, e gostaria de pedir
 a
 ajuda para poder estar melhorando.
 Segue abaixo o script e em anexo o plano de execução.
 Obrigado.
 select cd_terminal as cd
 , cast(data_captura as timestamp) as dataUltima
 , cast(data_adm as timestamp) as dataFechamento
 , CASE tipoUltima WHEN 4 THEN 'SAIDA' ELSE 'ENTRADA' END as fluxo
 , valorSaques as valorSaques
 , valorRecargas as valorRecargas
 , valorDepositos as valorDepositos
 , totalSaques as totalSaques
 , totalRecargas as totalRecargas
 , totalDepositos as totalDepositos
 , denominacoes as denominacaoUltima
 , dados_adm as denominacaoFechamento from (
 with r as (
 select t.cd_terminal
 , c.cd_tipo_transacao as tipo
 , sum(t.valor) as valor
 , count(*) as total
 from transacao_siscap t, codigo_transacao c, (
 select busca.terminal
 , busca.tipo as tipoUltima
 , busca.data_captura
 , busca.denominacoes
 , busca.data_adm
 , busca.dados_adm
 from (
 select trn.cd_terminal as terminal, trn.*, adm.* from (
 select ultima_adm.cd_terminal,
 data_captura as data_adm,
 dados_adm
 from (
 select adm.cd_terminal, nvl(max(id), 0) as id
 from transacao_adm_siscap adm,
 terminal atm
 where adm.cd_terminal = atm.cd_terminal
 and cd_proc = 31
 and atm.ativo = 1
 group by adm.cd_terminal
 ) ultima_adm, transacao_adm_siscap adm
 where ultima_adm.id = adm.id
 ) adm, (
 select trn.cd_terminal, cod.cd_tipo_transacao as tipo
 , trn.data_captura as data_captura
 , e.denominacao_movimentada as denominacoes from (
 select trn.cd_terminal, max(data_captura) as data_captura
 from transacao_siscap trn, transacao_ext_siscap e, terminal atm
 where trn.cd_terminal = atm.cd_terminal
 and trn.id = e.transacao_id
 and e.denominacao_movimentada is not null
 and atm.ativo = 1
 and cd_status in (03, 04, 05)
 group by trn.cd_terminal
 ) ultima, transacao_siscap trn, transacao_ext_siscap e,
 codigo_transacao cod
 where trn.cd_terminal = ultima.cd_terminal
 and cod.cd_proc = trn.cd_proc
 and ultima.data_captura = trn.data_captura
 and trn.id = e.transacao_id
 ) trn
 where adm.cd_terminal = trn.cd_terminal
 ) busca
 ) busca1
 where t.cd_proc = c.cd_proc
 and t.cd_terminal = busca1.terminal
 and t.data_captura between busca1.data_adm and busca1.data_captura
 and t.cd_status IN ('03', '04', '05')
 and c.cd_tipo_transacao in (7,4,2,13)
 group by t.cd_terminal
 , c.cd_tipo_transacao
 ) select t.cd_terminal AS cd_terminal
 , nvl((select valor from r where tipo = 4 and r.cd_terminal =
 t.cd_terminal), 0) as valorSaques
 , nvl((select valor from r where tipo = 7 and r.cd_terminal =
 t.cd_terminal), 0)
 +nvl((select valor from r where tipo = 13 and r.cd_terminal =
 t.cd_terminal), 0) as valorRecargas
 , nvl((select valor from r where tipo = 2 and r.cd_terminal =
 t.cd_terminal), 0) as valorDepositos
 , nvl((select total from r where tipo = 4 and r.cd_terminal =
 t.cd_terminal), 0) as totalSaques
 , nvl((select total from r where tipo = 7 and r.cd_terminal =
 t.cd_terminal), 0)
 +nvl((select total from r where tipo = 13 and r.cd_terminal =
 t.cd_terminal), 0) as totalRecargas
 , nvl((select total from r where tipo = 2 and r.cd_terminal =
 t.cd_terminal), 0) as totalDepositos
 from terminal t
 where t.ativo = 1
 ) busca2, (
 select busca.terminal
 , busca.tipoUltima
 , busca.data_captura
 , busca.denominacoes
 , busca.data_adm
 , busca.dados_adm
 from (
 select trn.cd_terminal as terminal, 

[oracle_br] Ajuda com trigger para incluir permissão

2014-12-02 Por tôpico Eduardo Perdomo panc...@gmail.com [oracle_br]
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.br
(21) 6845-8592
panc...@gmail.com
eduardo.perd...@pcinformatica.com.br
Blog: eduardo.perdomo.nom.br


[oracle_br] Ajuda Criar Função com Pragma

2014-10-28 Por tôpico Eduardo Perdomo panc...@gmail.com [oracle_br]
Boa tarde.

Tenho as seguintes tabelas:

carregamentos
numcar data posicao etc

pedidositens
codprod qtd valor numcar conferente

O relacionamento entre as duas é numcar

Preciso fazer uma função que quando eu passe o numero do carregamento o
conferente seja atualizado para todos os itens que estão nessa carga.

Vários pedidositens podem estar no mesmo carregamento. Talvez tenha que
fazer um FOR EACH

Vou usar esse função dentro de uma consulta em um relatorio, por isso o
pragma.

Segue abaixo minha tentativa:

CREATE OR REPLACE
FUNCTION liberacarregamento( yNUMCAR pedidositens.numcar%TYPE) RETURN
VARCHAR2
IS
PRAGMA AUTONOMOUS_TRANSACTION; -- PARA PERMITIR DAR UPDATE EM UM SELECT
XNUMCAR pedidositens.numcar%TYPE;
BEGIN
BEGIN
UPDATE pedidositens SET conferente = 1 WHERE NUMCAR = yNUMCAR;
COMMIT;

EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20001, ('ERRO AO ATUALIZAR O
CARREGAMENTO: ' + to_char(XNUMCAR) ) );
END;
RETURN xnumcar ;
END;
/








-- 

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


Re: [oracle_br] Ajuda Criar Função com Pragma

2014-10-28 Por tôpico Alessandro Lúcio Cordeiro da Silva alecordeirosi...@yahoo.com.br [oracle_br]


 
Boa tarde Eduardo,

Eu no geral não vejo com bons olhos o uso do Pragma Autonomuos_transaction, há 
situações sim que elas podem ser usadas, mas geralmente uma exceção.

O que ainda mais me preocura é você querer usar dentro de uma consulta, olhe 
tecnicamente falando isso vaifuncionar, todavia isso beira a uma gambiarra. 
Imagine a dificuldade que novos desenvolvedores/progamadores terão de entender 
a lógica disso, sendo que esta logica quebra todo conceito de consistência de 
leitura, ( a cada linha da consulta um commit, então imagine a bagunça de 
outras consultas feitas durante a execução da 1º consulta)  e ainda que 
consultas SQL's não abrem transação.

Eu fortemente recomendo que você reveja a sua lógica, e tente usar os padrões 
de desenvolvimento para aumentar a coesão e diminuir o acoplamento, senão você 
acaba tendo um sistema que parece uma linguiça.

Alessandro Lúcio Cordeiro da Silva 
Analista de Sistema

þ http://alecordeirosilva.blogspot.com/

Porque esta é a vontade de Deus, a saber, a vossa 
santificação: que vos abstenhais da prostituição.
(1º Tessalonicenses 4:3)



Em Terça-feira, 28 de Outubro de 2014 13:13, Eduardo Perdomo panc...@gmail.com 
[oracle_br] oracle_br@yahoogrupos.com.br escreveu:
 


  
Boa tarde.

Tenho as seguintes tabelas:

carregamentos
numcar data posicao etc

pedidositens
codprod qtd valor numcar conferente

O relacionamento entre as duas é numcar

Preciso fazer uma função que quando eu passe o numero do carregamento o 
conferente seja atualizado para todos os itens que estão nessa carga.

Vários pedidositens podem estar no mesmo carregamento. Talvez tenha que fazer 
um FOR EACH

Vou usar esse função dentro de uma consulta em um relatorio, por isso o pragma.

Segue abaixo minha tentativa:

CREATE OR REPLACE 
FUNCTION liberacarregamento( yNUMCAR pedidositens.numcar%TYPE) RETURN VARCHAR2
IS 
PRAGMA AUTONOMOUS_TRANSACTION; -- PARA PERMITIR DAR UPDATE EM UM SELECT
XNUMCAR pedidositens.numcar%TYPE;
BEGIN
BEGIN
UPDATE pedidositens SET conferente = 1 WHERE NUMCAR = yNUMCAR;
COMMIT;

EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20001, ('ERRO AO ATUALIZAR O CARREGAMENTO: 
' + to_char(XNUMCAR) ) );
END;
RETURN xnumcar ;
END;
/








-- 


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

Re: [oracle_br] Ajuda Criar Função com Pragma

2014-10-28 Por tôpico Victor Freidinger victor_freidin...@yahoo.com.br [oracle_br]
Olá, 
Desculpe, eu não encontrei a dúvida.Mas, interpretrei dessa forma:Você tem o 
número do carregamento em ambas as tabelas(o mesmo número).Você quer atualizar 
só o conferente na tabela pedidositens quando você passar o número do 
carregamento.Se for isso mesmo, porque não fazer só um update direto?Update 
pedidositens       set conferente = n_conferente  where carregamento = 
n_carregamento.Isso ai vai atualizar para todos os pedidositens daquele 
carregamento o número do conferente.Se não tem nada a ver com isso, desculpe a 
má interpretração.
 

 Em Terça-feira, 28 de Outubro de 2014 14:13, Eduardo Perdomo 
panc...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu:
   

 !--#yiv5155883115 #yiv5155883115 
.yiv5155883115ygrp-photo-title{clear:both;font-size:smaller;height:15px;overflow:hidden;text-align:center;width:75px;}#yiv5155883115
 
div.yiv5155883115ygrp-photo{background-position:center;background-repeat:no-repeat;background-color:white;border:1px
 solid black;height:62px;width:62px;}#yiv5155883115 
div.yiv5155883115photo-title a, #yiv5155883115 div.yiv5155883115photo-title 
a:active, #yiv5155883115 div.yiv5155883115photo-title a:hover, #yiv5155883115 
div.yiv5155883115photo-title a:visited {text-decoration:none;}#yiv5155883115 
div.yiv5155883115attach-table div.yiv5155883115attach-row 
{clear:both;}#yiv5155883115 div.yiv5155883115attach-table 
div.yiv5155883115attach-row div {float:left;}#yiv5155883115 p 
{clear:both;padding:15px 0 3px 0;overflow:hidden;}#yiv5155883115 
div.yiv5155883115ygrp-file {width:30px;}#yiv5155883115 
div.yiv5155883115attach-table div.yiv5155883115attach-row div div a 
{text-decoration:none;}#yiv5155883115 div.yiv5155883115attach-table 
div.yiv5155883115attach-row div div span {font-weight:normal;}#yiv5155883115 
div.yiv5155883115ygrp-file-title {font-weight:bold;}#yiv5155883115 -- 
!--#yiv5155883115 #yiv5155883115ygrp-mkp {border:1px solid 
#d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv5155883115 
#yiv5155883115ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv5155883115 
#yiv5155883115ygrp-mkp #yiv5155883115hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv5155883115 #yiv5155883115ygrp-mkp #yiv5155883115ads 
{margin-bottom:10px;}#yiv5155883115 #yiv5155883115ygrp-mkp .yiv5155883115ad 
{padding:0 0;}#yiv5155883115 #yiv5155883115ygrp-mkp .yiv5155883115ad p 
{margin:0;}#yiv5155883115 #yiv5155883115ygrp-mkp .yiv5155883115ad a 
{color:#ff;text-decoration:none;}--

Boa tarde.
Tenho as seguintes tabelas:
carregamentosnumcar data posicao etc
pedidositenscodprod qtd valor numcar conferente
O relacionamento entre as duas é numcar
Preciso fazer uma função que quando eu passe o numero do carregamento o 
conferente seja atualizado para todos os itens que estão nessa carga.
Vários pedidositens podem estar no mesmo carregamento. Talvez tenha que fazer 
um FOR EACH
Vou usar esse função dentro de uma consulta em um relatorio, por isso o pragma.
Segue abaixo minha tentativa:
CREATE OR REPLACE FUNCTION liberacarregamento( yNUMCAR 
pedidositens.numcar%TYPE) RETURN VARCHAR2IS PRAGMA AUTONOMOUS_TRANSACTION; -- 
PARA PERMITIR DAR UPDATE EM UM SELECTXNUMCAR pedidositens.numcar%TYPE;BEGIN    
BEGIN            UPDATE pedidositens SET conferente = 1 WHERE NUMCAR = yNUMCAR; 
       COMMIT;            EXCEPTION        WHEN OTHERS THEN            
RAISE_APPLICATION_ERROR(-20001, ('ERRO AO ATUALIZAR O CARREGAMENTO: ' + 
to_char(XNUMCAR) ) );    END;        RETURN xnumcar ;END;/







-- 

Eduardo PerdomoConsultor de ImplantaçãoGrupo PC Sistemas - www.grupopc.com.br 
(21) 6845-8592pancary@gmail.comeduardo.perd...@pcinformatica.com.brBlog: 
eduardo.perdomo.nom.br



   

Re: [oracle_br] Ajuda Criar Função com Pragma

2014-10-28 Por tôpico Eduardo Perdomo panc...@gmail.com [oracle_br]
Vitor...já está assim.
Alessandro, concordo..é gambiarra mesmo...solução de contorno emergencial...
Em 28/10/2014 15:53, Alessandro Lúcio Cordeiro da Silva
alecordeirosi...@yahoo.com.br [oracle_br] oracle_br@yahoogrupos.com.br
escreveu:





 Boa tarde Eduardo,

 Eu no geral não vejo com bons olhos o uso do Pragma
 Autonomuos_transaction, há situações sim que elas podem ser usadas, mas
 geralmente uma exceção.

 O que ainda mais me preocura é você querer usar dentro de uma consulta,
 olhe tecnicamente falando isso vaifuncionar, todavia isso beira a uma
 gambiarra. Imagine a dificuldade que novos desenvolvedores/progamadores
 terão de entender a lógica disso, sendo que esta logica quebra todo
 conceito de consistência de leitura, ( a cada linha da consulta um commit,
 então imagine a bagunça de outras consultas feitas durante a execução da 1º
 consulta)  e ainda que consultas SQL's não abrem transação.

 Eu fortemente recomendo que você reveja a sua lógica, e tente usar os
 padrões de desenvolvimento para aumentar a coesão e diminuir o acoplamento,
 senão você acaba tendo um sistema que parece uma linguiça.

 Alessandro Lúcio Cordeiro da Silva
 Analista de Sistema
 þ http://alecordeirosilva.blogspot.com/
 Porque esta é a vontade de Deus, a saber, a vossa
 santificação: que vos abstenhais da prostituição.
 (1º Tessalonicenses 4:3)



   Em Terça-feira, 28 de Outubro de 2014 13:13, Eduardo Perdomo
 panc...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Boa tarde.

 Tenho as seguintes tabelas:

 carregamentos
 numcar data posicao etc

 pedidositens
 codprod qtd valor numcar conferente

 O relacionamento entre as duas é numcar

 Preciso fazer uma função que quando eu passe o numero do carregamento o
 conferente seja atualizado para todos os itens que estão nessa carga.

 Vários pedidositens podem estar no mesmo carregamento. Talvez tenha que
 fazer um FOR EACH

 Vou usar esse função dentro de uma consulta em um relatorio, por isso o
 pragma.

 Segue abaixo minha tentativa:

 CREATE OR REPLACE
 FUNCTION liberacarregamento( yNUMCAR pedidositens.numcar%TYPE) RETURN
 VARCHAR2
 IS
 PRAGMA AUTONOMOUS_TRANSACTION; -- PARA PERMITIR DAR UPDATE EM UM SELECT
 XNUMCAR pedidositens.numcar%TYPE;
 BEGIN
 BEGIN
 UPDATE pedidositens SET conferente = 1 WHERE NUMCAR = yNUMCAR;
 COMMIT;

 EXCEPTION
 WHEN OTHERS THEN
 RAISE_APPLICATION_ERROR(-20001, ('ERRO AO ATUALIZAR O
 CARREGAMENTO: ' + to_char(XNUMCAR) ) );
 END;
 RETURN xnumcar ;
 END;
 /








 --

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






Re: [oracle_br] Ajuda Criar Função com Pragma

2014-10-28 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Eduardo, só uma obs em cima : o que o Alessandro falou é *** muito ***, mas 
MUITO Sério, mesmo : a questão é que no RDBMS Oracle automagicamente um SELECT 
enxerga os dados *** exatamente *** como eles estavam no instante X em que o 
SELECT começou a ser executado - mesmo que posteriormente em x+y vc faça o que 
fizer (UPDATE, DELETE, o que quiser!!! :  e comite vc ou não os DMLs !!) , o 
SELECT vai mostrar os dados como estavam em X
 Exemplificando : imagine que a tua procedure disparou e startou o SELECT 
principal do report na tabela T às 10:00h, e esse SELECT é longo e demora uns 
bons minutos para executar... Aí, ainda com o SELECT sendo executado,  as 
10h01m (digamos) vc fez (via AUTONOMOUS TRANSACTION, que basicamente abre uma 
outra sessão independente da atual) um UPDATE nessa mesma tabela T - comite ou 
não vc esse UPDATE, a query que começou ás 1-h e está rodando ainda  NÃO 
 vai enxergar essa alteração, aí se ela faz digamos um COUNT, vc VAI SIM 
ter resultado diferente do real... Sim ??? Perigoso o bastante pra vc ??? Vc 
TEM que se assegurar que o UPDATE não interfere em nenhuma coluna sendo lida 
pela query, justamente sob pena da query em execução NÂO ver essas alterações...
 
  E veja que eu nem estou falando de acesso multi-usuário : veja vc, se vc 
deixar ** É CLARO ** que esse report que faz alterações VAI cedo ou tarde ser 
disparado 2x ao mesmo tempo por dois usuários diferentes da Aplicação, e aí, 
como faz ?? Lost update mais que provável, né não ?? 
  
  == São esses tipos de coisa que temos que ter em mente antes de sair 
gambiarrando sem conhecer o mecanismo de transações e consistência de leitura 
do RDBMS Oracle, yep yep ??? 
  
  Pelo que entendi, o que vc quer é que, cfrme os dados vão sendo lidos e 
impressos, faça-se um UPDATE para cada registro lido, certo ?? Normalmente, 
para evitar lost update o que se faz é SERIALIZAR o acesso, com SELECT FOR 
UPDATE ou com LOCK TABLE, e para permitir DMLs na procedure se vc dizer 
exatamente qual tool de report vc está usando quem usa a mesma pode dar a dica 
de como se faz isso na tool.. Praticamente todas as tools de Report realmente 
proíbem DMLs na procedure que alimenta a query mas Permitem triggers PRE/POST 
report e quetais...
  
[]s

  Chiappa

[oracle_br] Ajuda query

2014-09-23 Por tôpico Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
Estou tentando montar uma consulta simples para me trazer os usuários que estão 
sem se logar há mais de 1 ano.
Até agora cheguei ao seguinte:

SELECT DISTINCT du.username, das.timestamp 
  FROM dba_users du,
   dba_audit_session das
 WHERE du.username = das.username
   AND os_username NOT IN ('oracle')
   AND action_name = 'LOGON'
   AND ACCOUNT_STATUS = 'OPEN'



Gostaria de saber só os usuários que não logaram há 1 ano, e a data de seu 
último login, caso não tenha nem logada que venha nulo mesmo.
O último filtro e o principal não consegui fazer, acho que deve ter a clausula 
NOT EXISTS, mas como sempre fui pessimo em realizar consultas, gostaria da 
ajuda dos amigos.


[oracle_br] Ajuda com Characteres Chineses

2014-09-23 Por tôpico Evandro Giachetto evandrogiache...@gmail.com [oracle_br]
Boa tarde grupo.

Gostaria da ajuda de vocês, em especial dos mais experientes em Linux,
quanto à exibição de caracteres em Chinês.

O problema é o seguinte:

Surgiu uma solicitação do time de desenvolvimento para fosse criada uma
tabela externa a partir de um arquivo csv que já foi transferido para o
servidor.

O problema é que esse arquivo contem tanto texto em Ingles quanto texto em
Chinês.

Ao criar a tabela externa, os caracteres em chinês não são exibidos da
forma correta.

O interessante é que, se eu abrir o arquivo com o VI, os caracteres são
exibidos normalmente. Em contrapartida, o cat mostra os caracteres
quebrados, assim como aparecem na tabela.

Alguém já enfrentou um problema desses?

Eu sei que basicamente meu problema está nas variáveis de ambiente
Nacionais, no entanto, não sei para quais devo setar para que esses
caracteres chineses sejam carregados corretamente para a tabela externa.

Coluna que deve receber os caracteres em chines foi criada como NVARCHAR2.

Red Hat Enterprise Linux Server release 5.10 (Tikanga)
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production

oragwp01@lxdwprddb01env | grep NLS
NLS_SORT=BINARY
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
NLS_DATE_LANGUAGE=AMERICAN
NLS_NUMERIC_CHARACTER=.,
ORA_NLS33=/oracle/GWP01/home/server/10.2.0/ocommon/nls/admin/data
NLS_DATE_FORMAT=DD-MON-RR


SQL select * from nls_database_parameters;

PARAMETER  VALUE
-- 
NLS_LANGUAGE   AMERICAN
NLS_TERRITORY  AMERICA
NLS_CURRENCY   $
NLS_ISO_CURRENCY   AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET   WE8ISO8859P1
NLS_CALENDAR   GREGORIAN
NLS_DATE_FORMATDD-MON-RR
NLS_DATE_LANGUAGE  AMERICAN
NLS_SORT   BINARY
NLS_TIME_FORMATHH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT   DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMATDD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY  $
NLS_COMP   BINARY
NLS_LENGTH_SEMANTICS   BYTE
NLS_NCHAR_CONV_EXCPFALSE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_RDBMS_VERSION  10.2.0.4.0

20 rows selected.



Evandro Giachetto
Oracle DBA
evandrogiache...@gmail.com


[oracle_br] Ajuda - Executar Forms via Forms Builder 11g 64

2014-09-19 Por tôpico Matheus Malta de Aguiar maltamath...@gmail.com [oracle_br]
Olá pessoal, boa noite!

Instalei em minha máquina o Oracle Fusion Middleware 11gR2 64.

Juntamente, foram instalados Java (instalador jdk-6u35-windows-x64) e
Weblogic 11gR1.

Meu forms builder conecta normalmente na base e compila o form.

Porém, ao executar o form (comando CTRL + R), o browser é inicializado,
porém não executa o form, mas sim, a página principal configurada no
browser (no caso, a página do google), como se eu tivesse executado o
browser normalmente, ou seja, fora do forms builder.

Alguém já se deparou com essa situação antes? Tem alguma idéia de como
resolver esse problema?

Considere que o serviço weblogic está subindo normalmente (verificado
inclusive no console do weblogic).

Obrigado!

Matheus


[oracle_br] Ajuda com JOIN

2014-09-18 Por tôpico Eduardo Perdomo panc...@gmail.com [oracle_br]
Pessoal, boa tarde.

Tenho duas consultas, uma de venda  e uma de devolução das vendas.
Na venda é retornado os clientes e suas vendas.
Na devolução é retornado os clientes e suas devoluções.

Preciso juntar as duas consultas para abater a devolução do valor da venda.

Já tentei colocando uma terceira tabela ( produtos), já tentei com (+) e
nada.

Segue abaixo as consultas se alguém puder dar uma idéia.

Abaixo tb tem os dados retornados para referencia, se ajudar.

 select codcli, sum(vltotal) from ---  venda ---
 pcnfsaid where 1=1 and pcnfsaid.codusur = 8
 AND pcnfsaid.dtsaida BETWEEN TO_DATE('26/07/2014', 'DD/MM/') AND
TO_DATE('25/08/2014', 'DD/MM/')
 AND PCNFSAID.CODFISCAL NOT IN (522, 622, 722, 532, 632, 732, 599) AND
PCNFSAID.CONDVENDA NOT IN (4, 8, 10, 13, 20, 98, 99)
 AND PCNFSAID.DTCANCEL IS NULL AND PCNFSAID.CODFILIAL IN(1)
 and pcnfsaid.codusur  1
group by pcnfsaid.codcli
order by codcli
 ;

 select codcli, sum(vldevolucao) from view_devol_resumo_faturamento
-- devolução --
 where dtent BETWEEN TO_DATE('26/07/2014', 'DD/MM/') AND
TO_DATE('25/08/2014', 'DD/MM/')
 and codusur = 8
 group by codcli
 order by codcli
 ;

codcli   venda
2167   1242,14
3202   2027,83
6218   1641,45
6242   4796,48
7167   6093,44
9648   437,88
25157 1943,57
44567 310
54091 1536,51
90071 7566,28
118811 1425,07
146929 2196,14
161725 333,6
188874 602,79
200066 9200,35
200812 2193,22
220074 3170,94
230362 2056,85
238988 826,67
258988 579,17
261737 1115,05
317067 1154,54
336435 2079,78
336582 500,6
336809 3236,36
351647 5564,32
351875 3613,06
370748 4035,7
385939 579,61
388440 1812,68
413423 1836,37
418627 2650,7
421036 535,9
422391 291,9
426311 804,58
432493 3878,8
435085 367,59
441604 500,6
442309 3398,25
450750 4193,3
455051 1051,37
455378 935,64
475700 2350
480022 2807,91
491421 1343,32
493499 1848,2
495776 9614,96
499500 2874,83
503498 427,89
513087 906,46
519782 3663,41
521975 3,39
532641 698,36
544800 2709,77
548935 539,89
550649 5736,85
553304 589,1
557031 500,6
558396 1931,38
558906 4449,29
561030 819,42
561828 2148,74
562793 593,62
567905 702,06
567971 2275,81
581438 3856,23
586226 4532,25
589347 3354,13
591174 375,53
593362 1336,21
594499 7510,98
595500 1435,78
599596 2428,62
600402 2660,71
601026 2092,16
602234 2864,83
604040 1559,36
604668 10141,88
605787 500,6
606131 3430,84
608191 500,6
610300 1114,38
618413 301,36
631819 263,05
632548 2450,29
636746 2320
641084 401,24
641521 2897,44
641813 293,16
646466 4932,62
647797 2399,12
651089 1507,62
653081 4317,99
654493 312,57
655960 287,96
658007 1880,95
658617 4470,67
663141 936,03
664985 5691,7
666466 705,12
666830 4313,77
667179 1093,33
668036 736,21
668060 1017,22
668078 2967,69
668507 310,68
668793 836,59
669278 3317,5
669472 600,46
669812 1257,06
671673 1162,8
675952 406,77
676461 485,28
676885 1352,29
677221 910,67
677302 885,74
679003 3239,58
679354 396,53
696657 631,92
698756 7039,58
699265 3703,03
700831 1362,16
704703 1581,6
705390 2877,66
705999 760,96
708899 1766,06
711933 1068,03
714505 1881,11
714522 807,79
715243 626,83
718548 301,51
718596 2636,65
718909 533,66
720533 550,67
721824 2385,9
723658 1298,49
724222 2428,22
724484 3058,99
724638 1368,78
725024 3405
725600 276,56
729418 552,1
729777 2217,33
730312 2839,14
731677 1333,82
732144 3035,26
733271 3101,38
733506 577,8
733807 780,55
734007 1401,1
738991 2391,7
740374 1085,46
740383 1586,51
741555 3894,98

codclidevolução
351647 94,8
450750 25,55
495776 167,004
548935 539,888
553304 266,5
558906 86,824
604668 250,8
606131 183,49
653081 289,36
658007 532,032
696657 110,466
732144 922,622
733271 60,085


-- 

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


[oracle_br] Ajuda c/ trigger

2014-09-08 Por tôpico Rafael HM Pereira rafael.henri...@gmail.com [oracle_br]
Pessoal, bom dia!!

Tem duas tabelas relacionadas: est_cadmaterial e est_itensdeestoque

Na aplicação, quando atualizado o cadastro de materiais (est_cadmaterial) o
sistema também atualiza alguns parametros na tabela est_itensdeestoque em
background, via aplicação.

Porém preciso criar uma trigger que quando o parametro GERARATEIOMAT = S na
tabela est_cadmaterial, a trigger deve atualizar a tabela
est_itensdeestoque, setando o campo BLOQUEIAMOVTORATEIO = S.

Estou escrevendo o seguinte código, porém nada acontece. Poderiam me ajudar
a resolver o problema?

create or replace TRIGGER TR_EST_BLOQUEIARATEIO
after insert or update on est_cadmaterial
for each row when (new.gerarateiomat = 'S')
BEGIN
UPDATE est_itensdeestoque SET bloqueiamovtorateio = 'S' WHERE
CODIGOMATINT = :old.codigomatint;
END;

-- 
Att,

Rafael HM Pereira


[oracle_br] Ajuda - Query Range de datas para Range de datas

2014-08-06 Por tôpico Saulo Brito saulo.brit...@gmail.com [oracle_br]
Boa tarde,

Alguém poderia me ajudar com uma query?

Tenho uma tabela com 2 colunas de data, sendo data_inicio e data_fim;
Tenho dois parâmetros de data, sendo data_inicio e data_fim também;

O que eu queria fazer é: Dentro de todas datas iniciais e finais da tabela
verificar se naquele range dos 2 parâmetros existe alguém na tabela ou se a
união de um registro na tabela com outro pega todo esse range;

Sei como resolver com o código, mas queria deixar como uma function.

Como faço a união das datas?

Simplesmente estou viajando nas querys e acho que já deu tela azul no meu
cérebro.

Se alguém puder dar a luz do caminho ficaria grato.

Abraços!


[oracle_br] Ajuda com Tune de query

2014-07-14 Por tôpico Evandro Giachetto evandrogiache...@gmail.com [oracle_br]
Boa tarde, caros colegas.

Estou neste momento trabalhando no tune de uma query em particular e
gostaria da opinião de vocês quanto à tomada de decisão.

Banco 10.2.0.4.0

Existe essa query que faz parte de uma procedure que roda diariamente.

SELECT  fcal.business_owner_dim_id,
   fcal.date_dim_id,
   dprd.call_type_cd,
   DPRD.call_type_nm,
   fcal.gl_product_dim_id,
   CM.CLASS_OF_SERVICE_ID,
   TRUNC (SYSDATE) start_effective_date,
   SUM (billable_minutes) minutes,
   COUNT ( * ) calls,
   SUM (FCAL.ACTUAL_CONNECTIONS) connections,
   SUM (netbasetotcallamt) revenue,
   ut.USE_TYPE_CATEGORY
FROM   gdwhs_adm.f_call fcal,
   gdwhs_adm.d_product dprd,
   ODS_SFDC.SFDC_BTC_GL_COS_MAP cm,
   gdwhs_adm.d_use_type ut
   WHERE   partition_key BETWEEN ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -6)
 AND  SYSDATE
   AND fcal.product_dim_id = dprd.product_dim_id
   AND FCAL.GL_PRODUCT_DIM_ID = CM.GL_PRODUCT_DIM_ID
   AND FCAL.USE_TYPE_DIM_ID = UT.USE_TYPE_DIM_ID
GROUP BY   fcal.business_owner_dim_id,
   fcal.date_dim_id,
   dprd.call_type_cd,
   DPRD.call_type_nm,
   fcal.gl_product_dim_id,
   ut.USE_TYPE_CATEGORY,
   CM.CLASS_OF_SERVICE_ID


O plano de execução para a mesma é o seguinte:

---
| Id  | Operation  | Name| Rows  |
Bytes |TempSpc| Cost (%CPU)| Time | Pstart| Pstop |TQ  |IN-OUT| PQ
Distrib |
---
|   0 | SELECT STATEMENT   | |   339K|
 29M|   |   137K  (1)| 00:32:10 |   |   ||  |
 |
|*  1 |  PX COORDINATOR| |   |
  |   ||  |   |   ||  |
   |
|   2 |   PX SEND QC (RANDOM)  | :TQ10004|   339K|
 29M|   |   137K  (1)| 00:32:10 |   |   |  Q1,04 | P-S | QC
(RAND)  |
|   3 |SORT GROUP BY   | |   339K|
 29M|67M|   137K  (1)| 00:32:10 |   |   |  Q1,04 | PCWP |
 |
|   4 | PX RECEIVE | |   339K|
 29M|   |   137K  (1)| 00:32:10 |   |   |  Q1,04 | PCWP |
 |
|   5 |  PX SEND HASH  | :TQ10003|   339K|
 29M|   |   137K  (1)| 00:32:10 |   |   |  Q1,03 | P-P | HASH
  |
|   6 |   SORT GROUP BY| |   339K|
 29M|67M|   137K  (1)| 00:32:10 |   |   |  Q1,03 | PCWP |
 |
|*  7 |FILTER  | |   |
  |   ||  |   |   |  Q1,03 | PCWC |
   |
|*  8 | HASH JOIN  | |   339K|
 29M|   |   137K  (1)| 00:32:10 |   |   |  Q1,03 | PCWP |
 |
|   9 |  PX RECEIVE| |  2189 |
45969 |   |85   (0)| 00:00:02 |   |   |  Q1,03 | PCWP |
   |
|  10 |   PX SEND BROADCAST| :TQ10001|  2189 |
45969 |   |85   (0)| 00:00:02 |   |   |  Q1,01 | P-P |
BROADCAST  |
|  11 |PX BLOCK ITERATOR   | |  2189 |
45969 |   |85   (0)| 00:00:02 |   |   |  Q1,01 | PCWC |
   |
|  12 | TABLE ACCESS FULL  | D_PRODUCT   |  2189 |
45969 |   |85   (0)| 00:00:02 |   |   |  Q1,01 | PCWP |
   |
|* 13 |  HASH JOIN | |   339K|
 22M|   |   137K  (1)| 00:32:09 |   |   |  Q1,03 | PCWP |
 |
|  14 |   BUFFER SORT  | |   |
  |   ||  |   |   |  Q1,03 | PCWC |
   |
|  15 |PX RECEIVE  | |73 |
 1898 |   | 3   (0)| 00:00:01 |   |   |  Q1,03 | PCWP |
   |
|  16 | PX SEND BROADCAST  | :TQ1|73 |
 1898 |   | 3   (0)| 00:00:01 |   |   || S-P |
BROADCAST  |
|  17 |  TABLE ACCESS FULL | SFDC_BTC_GL_COS_MAP |73 |
 1898 |   | 3   (0)| 00:00:01 |   |   ||  |
   |
|* 18 |   HASH JOIN| |   339K|
 14M|   |   137K  (1)| 00:32:09 |   |   |  Q1,03 | PCWP |
 |
|  19 |PX RECEIVE  | |10 |
 60 |   | 2   (0)| 00:00:01 |   |   |  Q1,03 | PCWP |
 |
|  20 | PX SEND BROADCAST  | :TQ10002|10 |
 60 |   | 2   (0)| 00:00:01 |   |   |  

[oracle_br] Ajuda com select 2

2014-04-15 Por tôpico Eduardo Perdomo
Bom dia.

Podem me ajudar com o select abaixo:

select c.codigo, sum(v.vltotal)
from vendas v, cliente c
where v.codigo = c.codigo
and c.rede = 1
group by c.codigo;

Preciso que o resultado traga a venda de todos os clientes da rede 1, não
apenas os que houveram venda.


-- 

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


RES: [oracle_br] Ajuda com select 2

2014-04-15 Por tôpico Marlon Pasquali - TI - Peccin S . A .
Testa assim:


select c.codigo, sum(v.vltotal)
from vendas v, cliente c
where  c.codigo = v.codigo(+)
and c.rede = 1
group by c.codigo;



De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome 
de Eduardo Perdomo
Enviada em: terça-feira, 15 de abril de 2014 09:50
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Ajuda com select 2


Bom dia.

Podem me ajudar com o select abaixo:

select c.codigo, sum(v.vltotal)
from vendas v, cliente c
where v.codigo = c.codigo
and c.rede = 1
group by c.codigo;

Preciso que o resultado traga a venda de todos os clientes da rede 1, não 
apenas os que houveram venda.


--

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



Re: [oracle_br] Ajuda com select 2

2014-04-15 Por tôpico Eduardo Perdomo
Deu certo..Obrigado..
Tem mais informação sobre esse (+) ?


Em 15 de abril de 2014 10:08, Marlon Pasquali - TI - Peccin S.A. 
marlon.pasqu...@peccin.com.br escreveu:



  Testa assim:





 select c.codigo, sum(v.vltotal)

 from vendas v, cliente c

 where  c.codigo = v.codigo(+)

 and c.rede = 1

 group by c.codigo;







 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] *Em
 nome de *Eduardo Perdomo
 *Enviada em:* terça-feira, 15 de abril de 2014 09:50
 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* [oracle_br] Ajuda com select 2





 Bom dia.



 Podem me ajudar com o select abaixo:



 select c.codigo, sum(v.vltotal)

 from vendas v, cliente c

 where v.codigo = c.codigo

 and c.rede = 1

 group by c.codigo;



 Preciso que o resultado traga a venda de todos os clientes da rede 1, não
 apenas os que houveram venda.





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br






-- 

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


RES: [oracle_br] Ajuda com select 2

2014-04-15 Por tôpico Marlon Pasquali - TI - Peccin S . A .
Neste caso o (+) equivale ao uso de  RIGHT JOIN , ou seja, vai trazer todos os 
clientes mesmo que não tenham venda.

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome 
de Eduardo Perdomo
Enviada em: terça-feira, 15 de abril de 2014 10:32
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Ajuda com select 2


Deu certo..Obrigado..
Tem mais informação sobre esse (+) ?

Em 15 de abril de 2014 10:08, Marlon Pasquali - TI - Peccin S.A. 
marlon.pasqu...@peccin.com.brmailto:marlon.pasqu...@peccin.com.br escreveu:

Testa assim:


select c.codigo, sum(v.vltotal)
from vendas v, cliente c
where  c.codigo = v.codigo(+)
and c.rede = 1
group by c.codigo;



De: oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br 
[mailto:oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br] Em 
nome de Eduardo Perdomo
Enviada em: terça-feira, 15 de abril de 2014 09:50
Para: oracle_br@yahoogrupos.com.brmailto:oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Ajuda com select 2


Bom dia.

Podem me ajudar com o select abaixo:

select c.codigo, sum(v.vltotal)
from vendas v, cliente c
where v.codigo = c.codigo
and c.rede = 1
group by c.codigo;

Preciso que o resultado traga a venda de todos os clientes da rede 1, não 
apenas os que houveram venda.


--

Eduardo Perdomo
Consultor de Implantação
Grupo PC Sistemas - www.grupopc.com.brhttp://www.grupopc.com.br
(21) 6845-8592tel:%2821%29%206845-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



Re: [oracle_br] Ajuda com select 2

2014-04-15 Por tôpico Yuri Menon
Porque os senhores não utilizam LEFT JOIN?
Confesso que eu tinha uma forte resistência a utilizá-lo.
Mas depois que passei a utilizá-lo, minha vida mudou! rsrsrsrs
É sério, é imprescindível, ajuda em muitas situações e basta acostumar-se.

select c.codigo, sum(v.vltotal) /* talvez precise do NVL, n=o SQL Server eu
sei que ignora os nulos na soma, Oracle não sei  */
from cliente c
left join vendas v on v.codigo = c.codigo
where c.rede = 1
group by c.codigo;

Vale a pena ver esse o print-screen desse site:
http://www.fernandasallai.com.br/?tag=left-join

Bem auto-explicativo




Em 15 de abril de 2014 10:09, Marcos Antônio de Araújo
maac...@gmail.comescreveu:



 Bom dia Eduardo!

 Acho que isto aqui resolve o seu problema:

 *select c.codigo,*
 *   nvl((select sum(v.vltotal)*
 *  from vendas v where v.codigo = c.codigo), 0) as vltotal*
 *  from cliente c*
 * where c.rede = 1;*


 Att,
 Marcos Antônio de Araújo
 Analista de Sistema - SOF/PBH
 PRODABEL
 (31) 3277-4177 / 4425


 Em 15 de abril de 2014 10:08, Marlon Pasquali - TI - Peccin S.A. 
 marlon.pasqu...@peccin.com.br escreveu:



  Testa assim:





 select c.codigo, sum(v.vltotal)

 from vendas v, cliente c

 where  c.codigo = v.codigo(+)

 and c.rede = 1

 group by c.codigo;







 *De:* oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] *Em
 nome de *Eduardo Perdomo
 *Enviada em:* terça-feira, 15 de abril de 2014 09:50
 *Para:* oracle_br@yahoogrupos.com.br
 *Assunto:* [oracle_br] Ajuda com select 2





 Bom dia.



 Podem me ajudar com o select abaixo:



 select c.codigo, sum(v.vltotal)

 from vendas v, cliente c

 where v.codigo = c.codigo

 and c.rede = 1

 group by c.codigo;



 Preciso que o resultado traga a venda de todos os clientes da rede 1, não
 apenas os que houveram venda.





 --



 Eduardo Perdomo

 Consultor de Implantação

 Grupo PC Sistemas - www.grupopc.com.br

 (21) 6845-8592

 panc...@gmail.com

 eduardo.perd...@pcinformatica.com.br

 Blog: eduardo.perdomo.nom.br


  



[oracle_br] Ajuda com erro na trigger de logon: ORA-00604: ocorreu um erro no nível 1 SQL recursivo

2014-03-12 Por tôpico Wanderson Barrence
Olá Pessoal,

Estou fazendo uma trigger de logon para monitorar todos os usuários que
acessam o banco de dados, tanto o usuário da aplicação, como usuário
cliente oracle e qualquer tipo de acesso com SYSDBA, os dados são
armazenados numa tabela chamada userlogon, mas por algum motivo a minha
trigger está dando um erro, já segui vários tutoriais no google e ainda não
consegui resolver o problema.

Segue a trigger:

CREATE TABLE loguser.userlogon (
   user_name VARCHAR2(300),
   login_date DATE,
   osuser VARCHAR2(300),
   terminal VARCHAR(300),
   program VARCHAR(300),
   ipadress VARCHAR(46)
   );

CREATE OR REPLACE TRIGGER sys.audit_userlogon
after LOGON ON DATABASE

DECLARE
wuser varchar2(300);
wosuser varchar2(300);
wterminal varchar2(300);
wprogram varchar2(300);
wipadress varchar2(46);

BEGIN
SELECT username, osuser, machine, program INTO wuser, wosuser, wterminal,
wprogram
  FROM v$session
  WHERE audsid = userenv('sessionid')
  AND ROWNUM = 1;

wipadress := sys_context('userenv','ip_address');

INSERT INTO loguser.userlogon(
user_name,
login_date,
osuser,
terminal,
program,
ipadress
) VALUES (
wuser,
 SYSDATE,
wosuser,
wterminal,
wprogram,
wipadress );

END audit_userlogon;
/

Erro:
ORA-00604: ocorreu um erro no nível 1 SQL recursivo
ORA-01422: a extração exata retorna mais do que o número solicitado de
linhas
ORA-06512: em line 35

Att,

Wanderson


Re: [oracle_br] Ajuda com erro na trigger de logon: ORA-00604: ocorreu um erro no nível 1 SQL recursivo

2014-03-12 Por tôpico Alessandro Lúcio Cordeiro da Silva
Wanderson, eu não entendi, este erro ocorre quando você tentar criar a Trigger 
ou depois de criada ao tentar logar no DataBase?
 
Alessandro Lúcio Cordeiro da Silva 
    Analista de Sistema

þ http://alecordeirosilva.blogspot.com/

Porque esta é a vontade de Deus, a saber, a vossa 
santificação: que vos abstenhais da prostituição.
(1º Tessalonicenses 4:3)




Em Quarta-feira, 12 de Março de 2014 13:04, Wanderson Barrence 
wbarre...@gmail.com escreveu:
 
  
Olá Pessoal,

Estou fazendo uma trigger de logon para monitorar todos os usuários que acessam 
o banco de dados, tanto o usuário da aplicação, como usuário cliente oracle e 
qualquer tipo de acesso com SYSDBA, os dados são armazenados numa tabela 
chamada userlogon, mas por algum motivo a minha trigger está dando um erro, já 
segui vários tutoriais no google e ainda não consegui resolver o problema.

Segue a trigger:

CREATE TABLE loguser.userlogon (
       user_name VARCHAR2(300),
       login_date DATE,
       osuser VARCHAR2(300),
       terminal VARCHAR(300),
       program VARCHAR(300),
       ipadress VARCHAR(46)
       );

CREATE OR REPLACE TRIGGER sys.audit_userlogon
after LOGON ON DATABASE 

DECLARE
wuser varchar2(300);
wosuser varchar2(300);
wterminal varchar2(300);
wprogram varchar2(300);
wipadress varchar2(46);

BEGIN
SELECT username, osuser, machine, program INTO wuser, wosuser, wterminal, 
wprogram
  FROM v$session 
  WHERE audsid = userenv('sessionid')
  AND ROWNUM = 1;

wipadress := sys_context('userenv','ip_address');

INSERT INTO loguser.userlogon( 
    user_name,
    login_date,
    osuser,
    terminal,
    program,
    ipadress 
    ) VALUES ( 
    wuser,
 SYSDATE,
    wosuser,
    wterminal,
    wprogram,
    wipadress );
    
END audit_userlogon;
/

Erro:
ORA-00604: ocorreu um erro no nível 1 SQL recursivo
ORA-01422: a extração exata retorna mais do que o número solicitado de linhas
ORA-06512: em line 35

Att,

Wanderson


Re: [oracle_br] Ajuda com erro na trigger de logon: ORA-00604: ocorreu um erro no nível 1 SQL recursivo

2014-03-12 Por tôpico Wanderson Barrence
Fala Alessandro!!!

Esse erro ocorre quanto tento criar a trigger.

Att,

Wanderson


Em 12 de março de 2014 14:11, Alessandro Lúcio Cordeiro da Silva 
alecordeirosi...@yahoo.com.br escreveu:



 Wanderson, eu não entendi, este erro ocorre quando você tentar criar a
 Trigger ou depois de criada ao tentar logar no DataBase?

 Alessandro Lúcio Cordeiro da Silva
 Analista de Sistema
 þ http://alecordeirosilva.blogspot.com/
 Porque esta é a vontade de Deus, a saber, a vossa
 santificação: que vos abstenhais da prostituição.
 (1º Tessalonicenses 4:3)



   Em Quarta-feira, 12 de Março de 2014 13:04, Wanderson Barrence 
 wbarre...@gmail.com escreveu:

  Olá Pessoal,

 Estou fazendo uma trigger de logon para monitorar todos os usuários que
 acessam o banco de dados, tanto o usuário da aplicação, como usuário
 cliente oracle e qualquer tipo de acesso com SYSDBA, os dados são
 armazenados numa tabela chamada userlogon, mas por algum motivo a minha
 trigger está dando um erro, já segui vários tutoriais no google e ainda não
 consegui resolver o problema.

 Segue a trigger:

 CREATE TABLE loguser.userlogon (
user_name VARCHAR2(300),
login_date DATE,
osuser VARCHAR2(300),
 terminal VARCHAR(300),
program VARCHAR(300),
ipadress VARCHAR(46)
);

 CREATE OR REPLACE TRIGGER sys.audit_userlogon
 after LOGON ON DATABASE

 DECLARE
 wuser varchar2(300);
 wosuser varchar2(300);
 wterminal varchar2(300);
 wprogram varchar2(300);
 wipadress varchar2(46);

  BEGIN
 SELECT username, osuser, machine, program INTO wuser, wosuser, wterminal,
 wprogram
   FROM v$session
   WHERE audsid = userenv('sessionid')
   AND ROWNUM = 1;

  wipadress := sys_context('userenv','ip_address');

 INSERT INTO loguser.userlogon(
 user_name,
 login_date,
 osuser,
 terminal,
 program,
 ipadress
 ) VALUES (
 wuser,
  SYSDATE,
 wosuser,
 wterminal,
 wprogram,
 wipadress );

 END audit_userlogon;
 /

 Erro:
 ORA-00604: ocorreu um erro no nível 1 SQL recursivo
 ORA-01422: a extração exata retorna mais do que o número solicitado de
 linhas
 ORA-06512: em line 35

 Att,

 Wanderson






Re: [oracle_br] AJUDA PHP x ORACLE X MYSQL

2014-02-13 Por tôpico angelo
Viu não era nem problema de Oracle..  esses sim, virão depois, traga-os
para a lista também.


abraço,


2014-02-13 0:25 GMT-02:00 JOSE PAULO jjpaulo@hotmail.com:



 Valeu pessoal
 pedi para o pessoal de infra criar outro usuário com permissões de adm pra
 ele tudo voltou a funcionar, como foi migrado o servidor, o pessoal de
 infra tinha me garantido nada iria mudar, como usuário e suas permissões vá
 entender SO. rsrs
 Estou a 4 meses como Analista Jr.
 quero ser um DBA um dia, estou no 5 período em Sistemas de Informações,
 vou precisar muito da ajuda de vocês.
 Paulo

 --
 To: oracle_br@yahoogrupos.com.br
 From: angelolis...@gmail.com
 Date: Wed, 12 Feb 2014 13:38:10 -0200
 Subject: Re: [oracle_br] AJUDA PHP x ORACLE X MYSQL




 Joao,

 Parece que e´ autenticacao em pasta C$  do servidor..  que causa erro no
 php,  nao necessariamente de banco, eu acho que ela nem chegou nessa parte..
 Fora que esse php aí ta com cara de que ta rodando num servidor Windows.

 Olha só essa linha

  /\172.16.0.66\c$\SyncNet\Receb 

 e ai deu erro 5.. acesso negado para o usuario do processo que executa o
 php..  isso é coisa do SO..

 Se vc tem acesso a esse servidor.. tenta acessar
  \\172.16.0.66\C$\syncnet\receb  acho que vai ocorrer o erro também.

 Como vc disse que mudou,  entao certamente o que existia antes, parou de
 funcionar

 Sua infra vai ter que arrumar isso...




 2014-02-12 12:01 GMT-02:00 Wanderson Barrence wbarre...@gmail.com:



 Fala João,

 Não sou muito bom com o PHP não!!! Mas pela mensagem, me parece que é um
 problema de autenticação, o sistema PHP não está conseguindo logar no
 banco.

 Verifica se o login e senha está ok!!!

 Att,

 Wanderson


 Em 11 de fevereiro de 2014 13:59, JOSE PAULO 
 jjpaulo@hotmail.comescreveu:



 Pessoal tenho uma aplicação que faz uma conecção com o banco ORACLE pra
 acompanhar algumas rotinas, ouve uma migração do banco mysql para um data
 center, depois dessa mudança agora tenho esse erro. Alguém poderia me
 ajudar se possivel.
 Grato
 Paulo.

 *Fatal error*: Uncaught exception 'UnexpectedValueException' with message
 'DirectoryIterator::__construct(/\172.16.0.66\c$\SyncNet\Recebe,/\172.16.0.66\c$\SyncNet\Recebe):
 Access is denied. (code: 5)' in
 C:\xampp\htdocs\websuporte\com_kk_pedidos_diarios.php:190 Stack trace: #0
 C:\xampp\htdocs\websuporte\com_kk_pedidos_diarios.php(190):
 DirectoryIterator-__construct('file:///\172.16...') #1
 C:\xampp\htdocs\websuporte\monitor.php(9): include('C:\xampp\htdocs...') #2
 {main} thrown in *C:\xampp\htdocs\websuporte\com_kk_pedidos_diarios.php*on 
 line
 *190*









Re: [oracle_br] AJUDA PHP x ORACLE X MYSQL

2014-02-12 Por tôpico Wanderson Barrence
Fala João,

Não sou muito bom com o PHP não!!! Mas pela mensagem, me parece que é um
problema de autenticação, o sistema PHP não está conseguindo logar no
banco.

Verifica se o login e senha está ok!!!

Att,

Wanderson


Em 11 de fevereiro de 2014 13:59, JOSE PAULO jjpaulo@hotmail.comescreveu:



 Pessoal tenho uma aplicação que faz uma conecção com o banco ORACLE pra
 acompanhar algumas rotinas, ouve uma migração do banco mysql para um data
 center, depois dessa mudança agora tenho esse erro. Alguém poderia me
 ajudar se possivel.
 Grato
 Paulo.

 *Fatal error*: Uncaught exception 'UnexpectedValueException' with message
 'DirectoryIterator::__construct(/\172.16.0.66\c$\SyncNet\Recebe,/\172.16.0.66\c$\SyncNet\Recebe):
 Access is denied. (code: 5)' in
 C:\xampp\htdocs\websuporte\com_kk_pedidos_diarios.php:190 Stack trace: #0
 C:\xampp\htdocs\websuporte\com_kk_pedidos_diarios.php(190):
 DirectoryIterator-__construct('file:///\172.16...') #1
 C:\xampp\htdocs\websuporte\monitor.php(9): include('C:\xampp\htdocs...') #2
 {main} thrown in *C:\xampp\htdocs\websuporte\com_kk_pedidos_diarios.php*on 
 line
 *190*

  



Re: [oracle_br] AJUDA PHP x ORACLE X MYSQL

2014-02-12 Por tôpico angelo
Joao,

Parece que e´ autenticacao em pasta C$  do servidor..  que causa erro no
php,  nao necessariamente de banco, eu acho que ela nem chegou nessa parte..
Fora que esse php aí ta com cara de que ta rodando num servidor Windows.

Olha só essa linha

 /\172.16.0.66\c$\SyncNet\Receb 

e ai deu erro 5.. acesso negado para o usuario do processo que executa o
php..  isso é coisa do SO..

Se vc tem acesso a esse servidor.. tenta acessar
 \\172.16.0.66\C$\syncnet\receb  acho que vai ocorrer o erro também.

Como vc disse que mudou,  entao certamente o que existia antes, parou de
funcionar

Sua infra vai ter que arrumar isso...




2014-02-12 12:01 GMT-02:00 Wanderson Barrence wbarre...@gmail.com:



 Fala João,

 Não sou muito bom com o PHP não!!! Mas pela mensagem, me parece que é um
 problema de autenticação, o sistema PHP não está conseguindo logar no
 banco.

 Verifica se o login e senha está ok!!!

 Att,

 Wanderson


 Em 11 de fevereiro de 2014 13:59, JOSE PAULO 
 jjpaulo@hotmail.comescreveu:



 Pessoal tenho uma aplicação que faz uma conecção com o banco ORACLE pra
 acompanhar algumas rotinas, ouve uma migração do banco mysql para um data
 center, depois dessa mudança agora tenho esse erro. Alguém poderia me
 ajudar se possivel.
 Grato
 Paulo.

 *Fatal error*: Uncaught exception 'UnexpectedValueException' with
 message
 'DirectoryIterator::__construct(/\172.16.0.66\c$\SyncNet\Recebe,/\172.16.0.66\c$\SyncNet\Recebe):
 Access is denied. (code: 5)' in
 C:\xampp\htdocs\websuporte\com_kk_pedidos_diarios.php:190 Stack trace: #0
 C:\xampp\htdocs\websuporte\com_kk_pedidos_diarios.php(190):
 DirectoryIterator-__construct('file:///\172.16...') #1
 C:\xampp\htdocs\websuporte\monitor.php(9): include('C:\xampp\htdocs...') #2
 {main} thrown in *C:\xampp\htdocs\websuporte\com_kk_pedidos_diarios.php*on 
 line
 *190*


  



RE: [oracle_br] AJUDA PHP x ORACLE X MYSQL

2014-02-12 Por tôpico JOSE PAULO
Valeu pessoalpedi para o pessoal de infra criar outro usuário com permissões de 
adm pra ele tudo voltou a funcionar, como foi migrado o servidor, o pessoal de 
infra tinha me garantido nada iria mudar, como usuário e suas permissões vá 
entender SO. rsrsEstou a 4 meses como Analista Jr.quero ser um DBA um dia, 
estou no 5 período em Sistemas de Informações, vou precisar muito da ajuda de 
vocês.Paulo

To: oracle_br@yahoogrupos.com.br
From: angelolis...@gmail.com
Date: Wed, 12 Feb 2014 13:38:10 -0200
Subject: Re: [oracle_br] AJUDA PHP x ORACLE X MYSQL














 

 



  



  
  
  
Joao,
Parece que e´ autenticacao em pasta C$  do servidor..  que causa erro no php,  
nao necessariamente de banco, eu acho que ela nem chegou nessa parte..
Fora que esse php aí ta com cara de que ta rodando num servidor Windows.


Olha só essa linha 
  /\172.16.0.66\c$\SyncNet\Receb  


e ai deu erro 5.. acesso negado para o usuario do processo que executa o php..  
isso é coisa do SO.. 

Se vc tem acesso a esse servidor.. tenta acessar  
\\172.16.0.66\C$\syncnet\receb  acho que vai ocorrer o erro também.

Como vc disse que mudou,  entao certamente o que existia antes, parou de 
funcionar
Sua infra vai ter que arrumar isso...  





2014-02-12 12:01 GMT-02:00 Wanderson Barrence wbarre...@gmail.com:














 

 



  



  
  
  
Fala João,
Não sou muito bom com o PHP não!!! Mas pela mensagem, me parece que é um 
problema de autenticação, o sistema PHP não está conseguindo logar no banco. 

Verifica se o login e senha está ok!!!


Att,
Wanderson

Em 11 de fevereiro de 2014 13:59, JOSE PAULO jjpaulo@hotmail.com escreveu:


















 



  



  
  
  


Pessoal tenho uma aplicação que faz uma conecção com o banco ORACLE pra 
acompanhar algumas rotinas, ouve uma migração do banco mysql para um data 
center, depois dessa mudança agora tenho esse erro. Alguém poderia me ajudar se 
possivel.



Grato
Paulo.
 
Fatal error: Uncaught exception 'UnexpectedValueException' with message 
'DirectoryIterator::__construct(/\172.16.0.66\c$\SyncNet\Recebe,/\172.16.0.66\c$\SyncNet\Recebe):
 
Access is denied. (code: 5)' in 
C:\xampp\htdocs\websuporte\com_kk_pedidos_diarios.php:190 Stack trace: #0 
C:\xampp\htdocs\websuporte\com_kk_pedidos_diarios.php(190): 
DirectoryIterator-__construct('file:///\172.16...') #1 
C:\xampp\htdocs\websuporte\monitor.php(9): include('C:\xampp\htdocs...') #2 
{main} thrown in C:\xampp\htdocs\websuporte\com_kk_pedidos_diarios.php on 
line 190
  




 









  












 









  












 









  

[oracle_br] AJUDA PHP x ORACLE X MYSQL

2014-02-11 Por tôpico JOSE PAULO
Pessoal tenho uma aplicação que faz uma conecção com o banco ORACLE pra 
acompanhar algumas rotinas, ouve uma migração do banco mysql para um data 
center, depois dessa mudança agora tenho esse erro. Alguém poderia me ajudar se 
possivel.
Grato
Paulo.
 
Fatal error: Uncaught exception 'UnexpectedValueException' with message 
'DirectoryIterator::__construct(/\172.16.0.66\c$\SyncNet\Recebe,/\172.16.0.66\c$\SyncNet\Recebe):
 
Access is denied. (code: 5)' in 
C:\xampp\htdocs\websuporte\com_kk_pedidos_diarios.php:190 Stack trace: #0 
C:\xampp\htdocs\websuporte\com_kk_pedidos_diarios.php(190): 
DirectoryIterator-__construct('file:///\172.16...') #1 
C:\xampp\htdocs\websuporte\monitor.php(9): include('C:\xampp\htdocs...') #2 
{main} thrown in C:\xampp\htdocs\websuporte\com_kk_pedidos_diarios.php on 
line 190
  

RE: [oracle_br] Ajuda sql

2014-01-21 Por tôpico JOSE PAULO
Valeu chiappa vai me ajudar no desenvolvimento do relatorioattPaulo

To: oracle_br@yahoogrupos.com.br
From: jlchia...@yahoo.com.br
Date: Tue, 14 Jan 2014 08:19:30 -0800
Subject: RE: [oracle_br] Ajuda sql
















 



  



  
  
Ent���ão : O fato de ser SAP ou n���ão , e de ser gerenciado por 
outrem, absolutamente ** n���ão ** tem a ver com a montagem de um caso-teste : 
o que a gente quer ���é que vc, no seu banco de teste, seu, particular, aonde 
vc pode tudo, fa���ça uns CREATE TABLEs e uns INSERTs com dados ** equivalentes 
** , apenas para podermos tentar reproduzir a t���écnica, a necessidade, sim ?? 
INVENTE os nomes das colunas, as constraints, os dados em si, bastando que 
sejam Equivalentes, ie, que sejam o mais  parecidos poss���ível com o que vc 
tem na prod do SAP, sim  Isso para vc poder adaptar a solu���ção encontrada 
l���á no ambiente real, sim ??
  E veja que eu insisti nos RELACIONAMENTOS : isso ���é cr���ítico para vc 
Evitar ler dados que n���ão se relacionam...  Por exemplo, assumindo que os 
nomes das tabelas e das colunas fossem como os abaixo, que exista uma coluna 
com data/hora E QUE realmente o codigo do cliente se repete nas 3 tabelas e 
���é o mesmo, com mesmo datatype, etc, digamos que fa���çamos algo + ou - tipo 
: 
  
SELECT CLI.CODIGO_CLIENTE,
   CLI.NOME_CLIENTE,
   PED.NUMERO_PEDIDO,
   PED.DATA_PEDIDO,
   FAT.FUNCIONARIO
FROM CLIENTE CLI,
 PEDIDO PED,
 FATURAMENTO FAT
WHERE CLI.CODIGO_CLIENTE = PED.CODIGO_CLIENTE
  AND CLI.CODIGO_CLIENTE = FAT.CODIGO_CLIENTE
  AND PED.DATA_PEDIDO BETWEEN TO_DATE('01/12/2013 00:00:00', 'DD/MM/ 
HH24:MI:SS') 
  AND TO_DATE('31/12/2013 23:59:59', 'DD/MM/ 
HH24:MI:SS')
ORDER BY CLI.CODIGO_CLIENTE, PED.DATA_PEDIDO, PED.NUMERO_PEDIDO;
  
  vai funcionar ?? DEPENDE : se o mesmo cliente pode ter diferentes pedidos no 
mesmo dia, E QUE esses pedidos podem ou n���ão ter sido j���á faturados, 
podemos cair numa situa���ção do tipo :
  
  pedidos
  
  NUMERO_PEDIDO DATA_PEDIDO COD_CLIENTE
  001   01/12/2013  10
  002   02/12/2013  10
  
  faturamentos
  
  FUNCIONARIO  COD_CLIENTE  
  JOSE 10
  
  == OU SEJA, o cliente 10 teve faturado o pedido 001 mas *** n���ão ** teve 
ainda faturado o pedido 002 : como esse cliente 10 ** existe ** na tabela 
FATURAMENTO (com ** OUTRO ** pedido, mas Existe) se eu restringir apenas pelo 
cod cliente vai aparecer informa���ção n���ão-relacionada, VAi aparecer esse 
pedido 002, sim ??? Sacou ??? 
   
   S���ão coisas do tipo que n���ós precisamos saber : QUAIS S���Ò�O os 
relacionamentos, as REGRAS DE NEG���Ò�CIO envolvidas, sim ??? Sen���ão vc vai 
fazer salada-russa a���í, vai trazer dados que est���ão em uma tabela MAS 
n���ão est���ão na outra tabela correspondente Sim ???
   
[]s

  Chiappa



 









  

Re: [oracle_br] AJUDA,POR FAVOR!!

2014-01-17 Por tôpico angelo
Chiappa, obrigado por complementar

Acho que eu nao tive muita clareza de raciocionio na hora pra dizer a Vera,
como deveria ser a estratégia dela para estudo, que é justamente essa que
vc comentou, acaba complementando minha resposta
Mas, uma coisa..  Vera, sem essa de eu sou estudante e nunca mexi com
isso.  Te digo, a hora é essa: Se nunca mexeu, vai mexer agora, se
organiza, segura na mao de Deus e vai. Atitude. Pra qualquer coisa na vida,
nao é só pros estudos.

boa sorte e posta suas duvidas aqui a medida que for desenvolvendo o
trabalho



2014/1/16 jlchia...@yahoo.com.br



 Vera, tudo joinha ? Desculpe eu me meter, mas xo ver se consigo te dar um
 caminho, uma orientacao  Primeiro de tudo, o elemento que mais nos
 restringe aqui no grupo (e na vida de modo geral) € ¢Ã© o tempo : todos
 n€ ¢Ã³s temos como arranjar 2 minutos para esclarecer um pequeno ponto, uma
 sintaxe, olhar um erro que est€ ¢Ã¡ dando na sua tentativa, MAS ningu€ ¢Ã©m
 tem os 60 minutos ou pouco mais que levaria pra fazer o exerc€ ¢Ã­cio
 completo , ok ?
Assim, digamos que vc vai fazer o exercicio do backup : a recomendacao
 eh RELER  a apostila/material para o topico o (** nao ** caia no erro de
 ler a apostila inteira, foco) , ai depois tentar colocar em acao/escrever o
 comando que a apostila te deu pra fazer o backup - se nao conseguir ai vc
 manda uma mensagem ** mostrando ** o que e como vc fez, que msgs de erro
 recebeu, sobe pra internet (num dos muitos sites de compartilhamento) um
 printscreen, que COM CERTEZA vc recebe resposta imediata - mais uma vez,
 responder sobre uma pequena d€ ¢Ãºvida de sintaxe ou sobre uma msg de erro
 VENDO o seu exemplo, VENDO o que vc est€ ¢Ã¡ fazendo eh muito simples e
 rapido do que fazer por conta o neg€ ¢Ã³cio INTEIRINHO, yep ??

  Ai vem o Segundo ponto, tambem importante, que eh a DIDATICA  : veja vc,
 suponha que a questao eh criar uma tabela, vc ta com duvida se depois do
 CREATE TABLE vem algo antes da coluna, eh de sintaxe a duvida  - ora, e
 alguem me der um comando completo, tipo :

 CREATE TABLE X (c1 number, c2 date);

 eu NAO CONSEGUIRIA deduzir so pelo exemplo a sintaxe, sim ?? Ja se eu
 tivesse tentado buscar nalgum manual/apostila/whatever, eu talvez nao
 chegasse no resultado final mas com certeza pelo menos chegaria perto, ai
 os detalhes finais eu pergunto pra algue...
 Entao eh por ai : se a gente fazer para vc, ok vc tem tudo pronto, tem o
 que entregar pro professor mas DIFICILMENTE conseguira aprender olhando
 algo pronto

 E finalmente, a eficiencia : imho Nao tem jeito , pra  aprender (que eh o
 objetivo aqui, e nao soh ter o exercicio pra entregar) imho IMPLICA em
 tentar fazer sozinho, errar, errar de novo, mostrar pra algum mais
 experiente ate onde chegou e qual eh a duvida, e assim ate chegar la

 []s

   Chiappa
  



Re: [oracle_br] AJUDA,POR FAVOR!!

2014-01-17 Por tôpico Vera Porfírio Cascardo
Obrigada ,pela dica!



Em Sexta-feira, 17 de Janeiro de 2014 9:18, angelo angelolis...@gmail.com 
escreveu:
  
  
Chiappa, obrigado por complementar

Acho que eu nao tive muita clareza de raciocionio na hora pra dizer a Vera, 
como deveria ser a estrat€  égia dela para estudo, que €  é justamente essa que 
vc comentou, acaba complementando minha resposta

Mas, uma coisa.. €   Vera, sem essa de eu sou estudante e nunca mexi com 
isso. €   Te digo, a hora €  é essa: Se nunca mexeu, vai mexer agora, se 
organiza, segura na mao de Deus e vai. Atitude. Pra qualquer coisa na vida, nao 
€  é s€  ó pros estudos.


boa sorte e posta suas duvidas aqui a medida que for desenvolvendo o trabalho




2014/1/16 jlchia...@yahoo.com.br

 
€    
Vera, tudo joinha ? Desculpe eu me meter, mas xo ver se consigo te dar um 
caminho, uma orientacao  Primeiro de tudo, o elemento que mais nos 
restringe aqui no grupo (e na vida de modo geral) €  ’  ¢Ã© o tempo : todos n€ 
 ’  ¢Ã³s temos como arranjar 2 minutos para esclarecer um pequeno ponto, uma 
sintaxe, olhar um erro que est€  ’  ¢Ã¡ dando na sua tentativa, MAS ningu€  ’  
¢Ã©m tem os 60 minutos ou pouco mais que levaria pra fazer o exerc€  ’  ¢Ã­cio 
completo , ok ?€    
€ Assim, digamos que vc vai fazer o exercicio do backup : a recomendacao 
eh RELER€    a apostila/material para o topico o (** nao ** caia no erro de 
ler a apostila inteira, foco) , ai depois tentar colocar em acao/escrever o 
comando que a apostila te deu pra fazer o backup - se nao conseguir ai vc 
manda uma mensagem ** mostrando ** o que e como vc fez, que msgs de erro 
recebeu, sobe pra internet (num dos muitos sites de compartilhamento) um 
printscreen, que COM CERTEZA vc recebe resposta imediata - mais uma vez, 
responder sobre uma pequena d€  ’  ¢Ãºvida de sintaxe ou sobre uma msg de erro 
VENDO o seu exemplo, VENDO o que vc est€  ’  ¢Ã¡ fazendo eh muito simples e 
rapido do que fazer por conta o neg€  ’  ¢Ã³cio INTEIRINHO, yep ?? 

€   Ai vem o Segundo ponto, tambem importante, que eh a DIDATICA€    : veja 
vc, suponha que a questao eh criar uma tabela, vc ta com duvida se depois do 
CREATE TABLE vem algo antes da coluna, eh de sintaxe a duvida€    - ora, e 
alguem me der um comando completo, tipo :

CREATE TABLE X (c1 number, c2 date);

eu NAO CONSEGUIRIA deduzir so pelo exemplo a sintaxe, sim ?? Ja se eu tivesse 
tentado buscar nalgum manual/apostila/whatever, eu talvez nao chegasse no 
resultado final mas com certeza pelo menos chegaria perto, ai os detalhes 
finais eu pergunto pra algue...
Entao eh por ai : se a gente fazer para vc, ok vc tem tudo pronto, tem o que 
entregar pro professor mas DIFICILMENTE conseguira aprender olhando algo 
pronto 

E finalmente, a eficiencia : imho Nao tem jeito , pra€    aprender (que eh o 
objetivo aqui, e nao soh ter o exercicio pra entregar) imho IMPLICA em tentar 
fazer sozinho, errar, errar de novo, mostrar pra algum mais experiente ate 
onde chegou e qual eh a duvida, e assim ate chegar la

[]s

€    Chiappa
  
 

Re: [oracle_br] AJUDA,POR FAVOR!!

2014-01-17 Por tôpico Vera Porfírio Cascardo
Herbert, obrigada!
Abraços!



Em Sexta-feira, 17 de Janeiro de 2014 17:31, Vera Porfírio Cascardo 
veraporfiriocasca...@yahoo.com.br escreveu:
  
  
Obrigada ,pela dica!



Em Sexta-feira, 17 de Janeiro de 2014 9:18, angelo angelolis...@gmail.com 
escreveu:
  
  
Chiappa, obrigado por complementar

Acho que eu nao tive muita clareza de raciocionio na hora pra dizer a Vera, 
como deveria ser a estrat€ ¢â’¢¬  € ¢Ã©gia dela para estudo, que € ¢â’¢¬  € ¢Ã© 
justamente essa que vc comentou, acaba complementando minha resposta

Mas, uma coisa.. € ¢â’¢¬   Vera, sem essa de eu sou estudante e nunca mexi com 
isso. € ¢â’¢¬   Te digo, a hora € ¢â’¢¬  € ¢Ã© essa: Se nunca mexeu, vai mexer 
agora, se organiza, segura na mao de Deus e vai. Atitude. Pra qualquer coisa na 
vida, nao € ¢â’¢¬  € ¢Ã© s€ ¢â’¢¬  € ¢Ã³ pros estudos.


boa sorte e posta suas duvidas aqui a medida que for desenvolvendo o trabalho




2014/1/16 jlchia...@yahoo.com.br

 
€ ¢â’¢¬    
Vera, tudo joinha ? Desculpe eu me meter, mas xo ver se consigo te dar um 
caminho, uma orientacao  Primeiro de tudo, o elemento que mais nos 
restringe aqui no grupo (e na vida de modo geral) € ¢â’¢¬  € ¢â’ ’¹  € 
¢Â¢Ã’£Â© o tempo : todos n€ ¢â’¢¬  € ¢â’ ’¹  € ¢Â¢Ã’£Â³s temos como arranjar 2 
minutos para esclarecer um pequeno ponto, uma sintaxe, olhar um erro que est€ 
¢â’¢¬  € ¢â’ ’¹  € ¢Â¢Ã’£Â¡ dando na sua tentativa, MAS ningu€ ¢â’¢¬  € ¢â’ ’¹ 
 € ¢Â¢Ã’£Â©m tem os 60 minutos ou pouco mais que levaria pra fazer o exerc€ 
¢â’¢¬  € ¢â’ ’¹  € ¢Â¢Ã’£­cio completo , ok ?€ ¢â’¢¬    
€ ¢â’¢¬ Assim, digamos que vc vai fazer o exercicio do backup : a 
recomendacao eh RELER€ ¢â’¢¬    a apostila/material para o topico o (** nao ** 
caia no erro de ler a apostila inteira, foco) , ai depois tentar colocar em 
acao/escrever o comando que a apostila te deu pra fazer o backup - se nao 
conseguir ai vc manda uma mensagem ** mostrando ** o que e como vc fez, que 
msgs de erro recebeu, sobe pra internet (num dos muitos sites de 
compartilhamento) um printscreen, que COM CERTEZA vc recebe resposta imediata 
- mais uma vez, responder sobre uma pequena d€ ¢â’¢¬  € ¢â’ ’¹  € ¢Â¢Ã’£Âºvida 
de sintaxe ou sobre uma msg de erro VENDO o seu exemplo, VENDO o que vc est€ 
¢â’¢¬  € ¢â’ ’¹  € ¢Â¢Ã’£Â¡ fazendo eh muito simples e rapido do que fazer por 
conta o neg€ ¢â’¢¬  € ¢â’ ’¹  € ¢Â¢Ã’£Â³cio INTEIRINHO, yep ?? 

€ ¢â’¢¬   Ai vem o Segundo ponto, tambem importante, que eh a DIDATICA€ ¢â’¢¬  
  : veja vc, suponha que a questao eh criar uma tabela, vc ta com duvida se 
depois do CREATE TABLE vem algo antes da coluna, eh de sintaxe a duvida€ ¢â’¢¬ 
   - ora, e alguem me der um comando completo, tipo :

CREATE TABLE X (c1 number, c2 date);

eu NAO CONSEGUIRIA deduzir so pelo exemplo a sintaxe, sim ?? Ja se eu tivesse 
tentado buscar nalgum manual/apostila/whatever, eu talvez nao chegasse no 
resultado final mas com certeza pelo menos chegaria perto, ai os detalhes 
finais eu pergunto pra algue...
Entao eh por ai : se a gente fazer para vc, ok vc tem tudo pronto, tem o que 
entregar pro professor mas DIFICILMENTE conseguira aprender olhando algo 
pronto 

E finalmente, a eficiencia : imho Nao tem jeito , pra€ ¢â’¢¬    aprender (que 
eh o objetivo aqui, e nao soh ter o exercicio pra entregar) imho IMPLICA em 
tentar fazer sozinho, errar, errar de novo, mostrar pra algum mais experiente 
ate onde chegou e qual eh a duvida, e assim ate chegar la

[]s

€ ¢â’¢¬    Chiappa
   

  
 

Re: [oracle_br] AJUDA,POR FAVOR!!

2014-01-16 Por tôpico herbert rodrigues da silva
Ola!

Tudo bem? aqui tem um site bacana que talvez te ajude.

http://www.orafaq.com/

abraco





Em 15 de janeiro de 2014 23:19, Vera Porfírio Cascardo 
veraporfiriocasca...@yahoo.com.br escreveu:



 Querido,eu tenho dúvidas em tudo!
 Eu sou estou pedindo uma ajuda para fazer e eu quero aprender também!

 Enviado do Yahoo Mail no 
 Androidhttps://br.overview.mail.yahoo.com/mobile/?.src=Android

  --
 * From: * Fabricio Pedroso Jorge fpjb...@gmail.com;
 * To: * oracle_br@yahoogrupos.com.br;
 * Subject: * Re: [oracle_br] AJUDA,POR FAVOR!!
 * Sent: * Thu, Jan 16, 2014 1:07:02 AM

   € ขย

 E quais s€ ขโ’ขฌย ย รฃo as d€ ขโ’ขฌย ย รบvidas?

 Creio que ninguem nessa lista vai fazer seu trabalho inteiro, mas sim
 ajudar a sanar as duvidas que voce venha a ter.


 Em 15 de janeiro de 2014 22:05, Vera Porf€ ขโ’ขฌย ย รญrio Cascardo 
 veraporfiriocasca...@yahoo.com.br escreveu:

  € ขโ’ขฌย ย ย

 € ขโ’ขฌย ย ย Ol€ ขโ’ขฌย ย โ’ ’นย ย ยฆรก pessoal,tudo bem com vcs?
 Gostaria da ajuda de voc€ ขโ’ขฌย ย โ’ ’นย ย ยฆรชs,estou com um trabalho
 € ขโ’ขฌย ย ย faculdade e n€ ขโ’ขฌย ย โ’ ’นย ย ยฆรฃo tenho experiencia sobre
 o assunto e nem a vivencia profissional para resolver e nem tive isso no
 laborat€ ขโ’ขฌย ย โ’ ’นย ย ยฆรณrio da faculdade € ขโ’ขฌย ย ย eu ainda
 n€ ขโ’ขฌย ย โ’ ’นย ย ยฆรฃo trabalho como DBA e estou com muita dificuldade
 em fazer...

 Vou colocar as quest€ ขโ’ขฌย ย โ’ ’นย ย ยฆรตes para que me ajudem!

 TIRE UM SNAPSHOT DA SUA M€ ขโ’ขฌย ย โ’ ’นย ย ยฆร’กQUINA VIRTUAL ANTES DE
 COMECAR O TRABALHO.
 O RESULTADO DO TRABALHO € ขโ’ขฌย ย โ’ ’นย ย ยฆร’ฉ UM .TXT COM AS
 SA€ ขโ’ขฌย ย โ’ ’นย ย ยฆร’ญDAS DOS COMANDOS.
 COLOQUE O SEU NOME COMPLETO NO TRABALHO.

 1- aumentar a sga do banco para 3gb usando o memory target
 2- alterar o banco para archivelog (se j€ ขโ’ขฌย ย โ’ ’นย ย ยฆรก o
 estiver, coloque em noarchivelog e depois em archivelog)
 3- habilitar o flashback database, mostrar o banco com o flashback
 habilitado
 4- criar algumas tabelas, gerar alguns inserts e evidenciar a volta do
 banco de dados, utilizando flashback database por scn ou tempo
 5- criar uma tabela , apag€ ขโ’ขฌย ย โ’ ’นย ย ยฆรก-la em seguida e fazer
 a sua restauracao utilizando flashback drop
 6- demonstrar o uso do flashback query, realizando uma query com dados do
 passado (atencao para a configuracao do undo retention)
 7- realizar um backup full e online para disco, utilizando o RMAN
 8- com o banco no ar, apagar o pfile/spfile, derrubar o banco, tentar
 sub€ ขโ’ขฌย ย โ’ ’นย ย ยฆรญ-lo. Fazer a recuperacao do spfile e abrir o
 banco de dados
 9- com o banco no ar, apagar (rm -f datafile ) um datafile nao critico
 e fazer a restauracao utilizando rman
 10- com o banco no ar, apagar um datafile critico e fazer a restauracao
 utilizando rman
 11- com o banco no ar, remover todos os controlfiles e fazer a
 recuperacao do banco de dados utilizando rman
 12- tire um relat€ ขโ’ขฌย ย โ’ ’นย ย ยฆรณrio do awrrpt e coloque a
 evidencia da sa€ ขโ’ขฌย ย โ’ ’นย ย ยฆรญda no resultado da prova,
 € ขโ’ขฌย ย โ’ ’นย ย ยฆรฉ necess€ ขโ’ขฌย ย โ’ ’นย ย ยฆรกrio aumentar algum
 pool da sga ? Por que ?
 13- tire um relat€ ขโ’ขฌย ย โ’ ’นย ย ยฆรณrio do addmrpt e coloque a
 evidencia da sa€ ขโ’ขฌย ย โ’ ’นย ย ยฆรญda no resultado do trabalho
 14- qual a utilidade do Resumable Space Allocation ?
 Pe€ ขโ’ขฌย ย โ’ ’นย ย ยฆรงo que voc€ ขโ’ขฌย ย โ’ ’นย ย ยฆรชs me
 € ขโ’ขฌย ย ย ajuda, nem sei por onde come€ ขโ’ขฌย ย โ’ ’นย ย ยฆรงar

 Muito obrigada!!!




 --
 *Fabr€ ขโ’ขฌย ย รญcio Pedroso Jorge.*

 Administrador de Banco de Dados
 Oracle 11g Certified SQL Expert
 Oracle 11g Certified Associate
 Oracle 11g Certified Professional
 Linux Professional Institute Certified Level I (LPIC-I)
 ITIL V3 Foudations
 certificacaodb.com.br

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

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

  



Re: [oracle_br] AJUDA,POR FAVOR!!

2014-01-16 Por tôpico angelo
Vera, boa tarde

Voce precisa botar a mão na massa, nao tem jeito
mas como nao tem tempo hábil pra fazer isso, ja que tem um trabalho a
entregar, envia as duvidas.. fazer o trabalho por vc, ninguem o fará.

Mas em paralelo, vai se esquematizando para executar o mao na massa.  Ser
um dba, antes de mais nada é ser pró-ativo.






2014/1/15 Vera Porfírio Cascardo veraporfiriocasca...@yahoo.com.br



  Ol€ ¦á pessoal,tudo bem com vcs?
 Gostaria da ajuda de voc€ ¦ês,estou com um trabalho  faculdade e n€ ¦ão
 tenho experiencia sobre o assunto e nem a vivencia profissional para
 resolver e nem tive isso no laborat€ ¦ório da faculdade  eu ainda n€ ¦ão
 trabalho como DBA e estou com muita dificuldade em fazer...

 Vou colocar as quest€ ¦ões para que me ajudem!

 TIRE UM SNAPSHOT DA SUA M€ ¦ÁQUINA VIRTUAL ANTES DE COMECAR O TRABALHO.
 O RESULTADO DO TRABALHO € ¦É UM .TXT COM AS SA€ ¦ÍDAS DOS COMANDOS.
 COLOQUE O SEU NOME COMPLETO NO TRABALHO.

 1- aumentar a sga do banco para 3gb usando o memory target
 2- alterar o banco para archivelog (se j€ ¦á o estiver, coloque em
 noarchivelog e depois em archivelog)
 3- habilitar o flashback database, mostrar o banco com o flashback
 habilitado
 4- criar algumas tabelas, gerar alguns inserts e evidenciar a volta do
 banco de dados, utilizando flashback database por scn ou tempo
 5- criar uma tabela , apag€ ¦á-la em seguida e fazer a sua restauracao
 utilizando flashback drop
 6- demonstrar o uso do flashback query, realizando uma query com dados do
 passado (atencao para a configuracao do undo retention)
 7- realizar um backup full e online para disco, utilizando o RMAN
 8- com o banco no ar, apagar o pfile/spfile, derrubar o banco, tentar
 sub€ ¦í-lo. Fazer a recuperacao do spfile e abrir o banco de dados
 9- com o banco no ar, apagar (rm -f datafile ) um datafile nao critico e
 fazer a restauracao utilizando rman
 10- com o banco no ar, apagar um datafile critico e fazer a restauracao
 utilizando rman
 11- com o banco no ar, remover todos os controlfiles e fazer a recuperacao
 do banco de dados utilizando rman
 12- tire um relat€ ¦ório do awrrpt e coloque a evidencia da sa€ ¦ída no
 resultado da prova, € ¦é necess€ ¦ário aumentar algum pool da sga ? Por que
 ?
 13- tire um relat€ ¦ório do addmrpt e coloque a evidencia da sa€ ¦ída no
 resultado do trabalho
 14- qual a utilidade do Resumable Space Allocation ?
 Pe€ ¦ço que voc€ ¦ês me  ajuda, nem sei por onde come€ ¦çar

 Muito obrigada!!!

  



Re: [oracle_br] AJUDA,POR FAVOR!!

2014-01-16 Por tôpico Vera Porfírio Cascardo
Boa noite,Ângelo!
Eu sei que tenho que colocar a mão na massa,eu ainda sou estudante e não tenho 
experiência na área,e eu sei que ninguém fará o meu trabalho apenas estou 
pedindo uma ajuda! Um caminho apenas isso...
Obrigada pela a sua atenção!
Abraços

Enviado do Yahoo Mail no Android



Re: [oracle_br] AJUDA,POR FAVOR!!

2014-01-16 Por tôpico jlchiappa
Vera, tudo joinha ? Desculpe eu me meter, mas xo ver se consigo te dar um 
caminho, uma orientacao  Primeiro de tudo, o elemento que mais nos 
restringe aqui no grupo (e na vida de modo geral) é o tempo : todos nós temos 
como arranjar 2 minutos para esclarecer um pequeno ponto, uma sintaxe, olhar um 
erro que está dando na sua tentativa, MAS ninguém tem os 60 minutos ou pouco 
mais que levaria pra fazer o exercício completo , ok ?  
   Assim, digamos que vc vai fazer o exercicio do backup : a recomendacao eh 
RELER  a apostila/material para o topico o (** nao ** caia no erro de ler a 
apostila inteira, foco) , ai depois tentar colocar em acao/escrever o comando 
que a apostila te deu pra fazer o backup - se nao conseguir ai vc manda uma 
mensagem ** mostrando ** o que e como vc fez, que msgs de erro recebeu, sobe 
pra internet (num dos muitos sites de compartilhamento) um printscreen, que COM 
CERTEZA vc recebe resposta imediata - mais uma vez, responder sobre uma pequena 
dúvida de sintaxe ou sobre uma msg de erro VENDO o seu exemplo, VENDO o que vc 
está fazendo eh muito simples e rapido do que fazer por conta o negócio 
INTEIRINHO, yep ?? 

 Ai vem o Segundo ponto, tambem importante, que eh a DIDATICA  : veja vc, 
suponha que a questao eh criar uma tabela, vc ta com duvida se depois do CREATE 
TABLE vem algo antes da coluna, eh de sintaxe a duvida  - ora, e alguem me der 
um comando completo, tipo :

CREATE TABLE X (c1 number, c2 date);

eu NAO CONSEGUIRIA deduzir so pelo exemplo a sintaxe, sim ?? Ja se eu tivesse 
tentado buscar nalgum manual/apostila/whatever, eu talvez nao chegasse no 
resultado final mas com certeza pelo menos chegaria perto, ai os detalhes 
finais eu pergunto pra algue...
Entao eh por ai : se a gente fazer para vc, ok vc tem tudo pronto, tem o que 
entregar pro professor mas DIFICILMENTE conseguira aprender olhando algo 
pronto 

E finalmente, a eficiencia : imho Nao tem jeito , pra  aprender (que eh o 
objetivo aqui, e nao soh ter o exercicio pra entregar) imho IMPLICA em tentar 
fazer sozinho, errar, errar de novo, mostrar pra algum mais experiente ate onde 
chegou e qual eh a duvida, e assim ate chegar la

[]s

  Chiappa

[oracle_br] AJUDA,POR FAVOR!!

2014-01-15 Por tôpico Vera Porfírio Cascardo
 Olá pessoal,tudo bem com vcs?
Gostaria da ajuda de vocês,estou com um trabalho  faculdade e não tenho 
experiencia sobre o assunto e nem a vivencia profissional para resolver e nem 
tive isso no laboratório da faculdade  eu ainda não trabalho como DBA e estou 
com muita dificuldade em fazer...

Vou colocar as questões para que me ajudem!

TIRE UM SNAPSHOT DA SUA MÁQUINA VIRTUAL ANTES DE COMECAR O TRABALHO.
O RESULTADO DO TRABALHO É UM .TXT COM AS SAÍDAS DOS COMANDOS.
COLOQUE O SEU NOME COMPLETO NO TRABALHO.

1- aumentar a sga do banco para 3gb usando o memory target
2- alterar o banco para archivelog (se já o estiver, coloque em noarchivelog e 
depois em archivelog)
3- habilitar o flashback database, mostrar o banco com o flashback habilitado
4- criar algumas tabelas, gerar alguns inserts e evidenciar a volta do banco de 
dados, utilizando flashback database por scn ou tempo
5- criar uma tabela , apagá-la em seguida e fazer a sua restauracao utilizando 
flashback drop
6- demonstrar o uso do flashback query, realizando uma query com dados do 
passado (atencao para a configuracao do undo retention)
7- realizar um backup full e online para disco, utilizando o RMAN
8- com o banco no ar, apagar o pfile/spfile, derrubar o banco, tentar subí-lo. 
Fazer a recuperacao do spfile e abrir o banco de dados
9- com o banco no ar, apagar (rm -f datafile ) um datafile nao critico e 
fazer a restauracao utilizando rman
10- com o banco no ar, apagar um datafile critico e fazer a restauracao 
utilizando rman
11- com o banco no ar, remover todos os controlfiles e fazer a recuperacao do 
banco de dados utilizando rman
12- tire um relatório do awrrpt e coloque a evidencia da saída no resultado da 
prova, é necessário aumentar algum pool da sga ? Por que ?
13- tire um relatório do addmrpt e coloque a evidencia da saída no resultado do 
trabalho
14- qual a utilidade do Resumable Space Allocation ?
Peço que vocês me  ajuda, nem sei por onde começar

Muito obrigada!!!


Re: [oracle_br] AJUDA,POR FAVOR!!

2014-01-15 Por tôpico Fabricio Pedroso Jorge
E quais são as dúvidas?

Creio que ninguem nessa lista vai fazer seu trabalho inteiro, mas sim
ajudar a sanar as duvidas que voce venha a ter.


Em 15 de janeiro de 2014 22:05, Vera Porfírio Cascardo 
veraporfiriocasca...@yahoo.com.br escreveu:



  Ol€ ¦á pessoal,tudo bem com vcs?
 Gostaria da ajuda de voc€ ¦ês,estou com um trabalho  faculdade e n€ ¦ão
 tenho experiencia sobre o assunto e nem a vivencia profissional para
 resolver e nem tive isso no laborat€ ¦ório da faculdade  eu ainda n€ ¦ão
 trabalho como DBA e estou com muita dificuldade em fazer...

 Vou colocar as quest€ ¦ões para que me ajudem!

 TIRE UM SNAPSHOT DA SUA M€ ¦ÁQUINA VIRTUAL ANTES DE COMECAR O TRABALHO.
 O RESULTADO DO TRABALHO € ¦É UM .TXT COM AS SA€ ¦ÍDAS DOS COMANDOS.
 COLOQUE O SEU NOME COMPLETO NO TRABALHO.

 1- aumentar a sga do banco para 3gb usando o memory target
 2- alterar o banco para archivelog (se j€ ¦á o estiver, coloque em
 noarchivelog e depois em archivelog)
 3- habilitar o flashback database, mostrar o banco com o flashback
 habilitado
 4- criar algumas tabelas, gerar alguns inserts e evidenciar a volta do
 banco de dados, utilizando flashback database por scn ou tempo
 5- criar uma tabela , apag€ ¦á-la em seguida e fazer a sua restauracao
 utilizando flashback drop
 6- demonstrar o uso do flashback query, realizando uma query com dados do
 passado (atencao para a configuracao do undo retention)
 7- realizar um backup full e online para disco, utilizando o RMAN
 8- com o banco no ar, apagar o pfile/spfile, derrubar o banco, tentar
 sub€ ¦í-lo. Fazer a recuperacao do spfile e abrir o banco de dados
 9- com o banco no ar, apagar (rm -f datafile ) um datafile nao critico e
 fazer a restauracao utilizando rman
 10- com o banco no ar, apagar um datafile critico e fazer a restauracao
 utilizando rman
 11- com o banco no ar, remover todos os controlfiles e fazer a recuperacao
 do banco de dados utilizando rman
 12- tire um relat€ ¦ório do awrrpt e coloque a evidencia da sa€ ¦ída no
 resultado da prova, € ¦é necess€ ¦ário aumentar algum pool da sga ? Por que
 ?
 13- tire um relat€ ¦ório do addmrpt e coloque a evidencia da sa€ ¦ída no
 resultado do trabalho
 14- qual a utilidade do Resumable Space Allocation ?
 Pe€ ¦ço que voc€ ¦ês me  ajuda, nem sei por onde come€ ¦çar

 Muito obrigada!!!

  




-- 
*Fabrício Pedroso Jorge.*

Administrador de Banco de Dados
Oracle 11g Certified SQL Expert
Oracle 11g Certified Associate
Oracle 11g Certified Professional
Linux Professional Institute Certified Level I (LPIC-I)
ITIL V3 Foudations
certificacaodb.com.br

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

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


Re: [oracle_br] AJUDA,POR FAVOR!!

2014-01-15 Por tôpico Vera Porfírio Cascardo
Querido,eu tenho dúvidas em tudo!
Eu sou estou pedindo uma ajuda para fazer e eu quero aprender também!

Enviado do Yahoo Mail no Android



RE: [oracle_br] Ajuda sql

2014-01-14 Por tôpico JOSE PAULO
Sim Chiappa tenho o código do Pedido na tabela faturamento, também tenho 
cliente que tem mais de um pedido por dia e  data, por isso não posso agrupar, 
preciso de todos os registros de um determinado período, usar um order by desc 
no codigo do cliente, a versão do BD é 10g e tenho aproximadamente 2 gb de 
dados nas 3 tabelas, só não poderei dá alguns inserts pra teste porque o 
sistema é SAP administrado por outra empresa.desculpem a ignorância é prq tenho 
apenas 3 meses trabalhando com Oracle e SAP estou me esforçando pra aprender 
cada dia mais.
Paulo
To: oracle_br@yahoogrupos.com.br
From: jlchia...@yahoo.com.br
Date: Mon, 13 Jan 2014 05:23:24 -0800
Subject: Re: [oracle_br] Ajuda sql
















 



  



  
  
  Na verdade mais que um DESCRIBE, a gente precisaria ���é saber a 
Modelagem, saber quem s���ão as colunas que devem ser usadas para 
relacionamento PRINCIPALMENTE essa tabela Faturamento, eu tenendo que ele 
N���ão quer a cada pedido ler toda a tabela de faturamentos, mas sim s���ó o 
faturamento de um pedido espec���ífico  Ent���ão COM CERTEZA deve haver 
algum C���ódigo do Pedido citado na tabela de faturamento 
 Uma id���éia de retorno tamb���ém seria legal, pois (imagino) que um Cliente 
deve/pode ter mais de um pedido por dia/data, o que ele precisa : mostrar todos 
?? Agrupar de alguma maneira ?? Detalhes, detalhes
  E n���ão pega mal a VERS���Ò�O EXATA do database que estamos discutindo (pra 
vermos quais features podemos ou n���ão usar), uma id���éia de volumes e uns 
CREATEs das tabelas envolvidas e uns INSERTs com dados relevantes, pra se poder 
testar, n���é ?
 
   []s
   
 Chiappa




 









  

  1   2   3   4   5   6   7   >