Problema: Descrição do Problema: Ao efetuar a finalização de uma venda no Caixa Megasul, apresenta o seguinte erro:Ocorreu erro ao finalizar a operação: General SQL error.ORA - 01000: máximo de cursores abertos excedidoO cupom será cancelado!A situação só ocorre quando se está utilizando banco de dados Oracle.Rotina / Tela: Aplicativo CAIXA Megasul, tela TOTAL.Solução: Solução: Para a mensagem ORA-01000: máximo de cursores abertos excedido é necessário que sejam efetuadas as seguintes verificações:1 - Deve-se entrar em contato com o DBA Oracle ou responsável pelo banco de dados e solicite que seja efetuado o aumento dos cursores do Oracle;2 - Para verificar o número máximo de cursores, pode-se executar o comando abaixo:select v.value as numopencursors, s.machine, s.osuser, s.username from V$SESSTAT v, V$SESSION s where v.statistic# = 3 and v.sid = s.sid;2.1 Select para verificar a numeração dos cursores antes de altera-lo:select name,value from v$parameter where name = 'open_cursors';3 - Para aumentar o número de cursores, deve-se rodar o comando abaixo no scripter: alter system set open_cursors= 50000 scope=both; -- Neste caso o aumento ocorrerá para 50.000 cursores.4 - Select para verificar cursores:select user_process username, Recursive Calls, Opened Cursors, Current Cursors from ( select nvl(ss.USERNAME,'ORACLE PROC')||'('||se.sid||') ' user_process, sum(decode(NAME,'recursive calls',value)) Recursive Calls, sum(decode(NAME,'opened cursors cumulative',value)) Opened Cursors, sum(decode(NAME,'opened cursors current',value)) Current Cursors from v$session ss, v$sesstat se, v$statname sn where se.STATISTIC# = sn.STATISTIC# and (NAME like '%opened cursors current%' or NAME like '%recursive calls%' or NAME like '%opened cursors cumulative%') and se.SID = ss.SID and ss.USERNAME is not null group bynvl(ss.USERNAME,'ORACLE PROC')||'('||se.SID||') ' ) orasnap_user_cursors order byUSER_PROCESS,Recursive Calls ;
Comentários
0 comentário
Artigo fechado para comentários.