Boa noite pessoal.
Gostaria de saber se existe alguma função que retorna a quantidade de linhas de um cursor. Utilizo um cursor explícito e dos atributos que verifiquei o que mais se aproximaria é o %ROWCOUNT mas vi que ele retorna a qtd de linhas processadas até o momento. Existe algum outro atributo ou eu teria que "descarregar" este cursor em uma tabela PL/SQL ou há ainda outra alternativa?
Retornando a qtd de linhas de um cursor
-
- Rank: Estagiário Pleno
- Mensagens: 7
- Registrado em: Ter, 07 Dez 2010 9:10 pm
- Localização: Araraquara - SP
-
- Rank: Programador Sênior
- Mensagens: 45
- Registrado em: Qua, 31 Out 2007 9:30 am
- Localização: Uberlândia
Rafael Rocha
Experimente utilizar o count(*) over () dentro do seu select.
-
- Rank: Oracle Guru
- Mensagens: 448
- Registrado em: Ter, 16 Jun 2009 3:07 pm
- Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS
[]s
Programador Junior
Parobé RS
[]s
É... sem criar um campo dentro da query pra fzer isso acredito que a única solução é o rowcount mesmo.
Se quer todas do cursor pega ele após o loop . Ou faz como lhe foi dito, cria um campo novo na query com a função count pra saber a quantidade de linhas da consulta.
Se quer todas do cursor pega ele após o loop . Ou faz como lhe foi dito, cria um campo novo na query com a função count pra saber a quantidade de linhas da consulta.
-
- Rank: Estagiário Pleno
- Mensagens: 7
- Registrado em: Ter, 07 Dez 2010 9:10 pm
- Localização: Araraquara - SP
Então, no meu caso, de acordo com a quantidade de linhas retornadas no cursor, eu tomo uma determinada ação, por isso julguei que o %ROWCOUNT não funcionaria, pois eu só teria o total de linhas após todas as iterações.
Se eu usar o count(1) vou sempre ter a qtd 1, pois se eu retornar por exemplo, 3 linhas no cursor, o count retornará 1 para cada linha.... mas como funciona o over()? É uma função?
Se eu usar o count(1) vou sempre ter a qtd 1, pois se eu retornar por exemplo, 3 linhas no cursor, o count retornará 1 para cada linha.... mas como funciona o over()? É uma função?
-
- Rank: Oracle Guru
- Mensagens: 448
- Registrado em: Ter, 16 Jun 2009 3:07 pm
- Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS
[]s
Programador Junior
Parobé RS
[]s
O over te permite definir um agrupamento apenas para a coluna do count, sem ter de agrupar o restante da query.
a ideia é que teu count retorne a quantidade de registros da query em todas as colunas.
Posta o teu select pra ver o que podemos fazer.
a ideia é que teu count retorne a quantidade de registros da query em todas as colunas.
Posta o teu select pra ver o que podemos fazer.
-
- Rank: Oracle Guru
- Mensagens: 448
- Registrado em: Ter, 16 Jun 2009 3:07 pm
- Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS
[]s
Programador Junior
Parobé RS
[]s
Tenta aí.
SELECT QRY.ID_COBRANCA_PARCEIRO,
QRY.NUM_CONTRATO,
QRY.CID_CONTRATO,
QRY.VLR_COBRANCA,
QRY.ID_SIT_COBRANCA,
QRY.DT_VENCTO,
QRY.DT_BAIXA,
QRY.VLR_REPASSADO,
COUNT (*) OVER ()
FROM ( "QUERY" ) QRY
-
- Rank: Estagiário Pleno
- Mensagens: 7
- Registrado em: Ter, 07 Dez 2010 9:10 pm
- Localização: Araraquara - SP
Opa... Obrigado!!! Resolveu sim.
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes