Ultima Linha do Cursor

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
  

Mensagemem Seg, 01 Ago 2005 5:10 pm

Eu tenho um Cursor de Dados carregado a partir de Uma select
um tanto pesado,
a principio eu rodo o loop 1º com um count e depois eu rodo ele novamente fazendo os procedimentos internos e mostrando na tela a porcentagem de execução.
mas desta forma duplica o tempo de execuçao(baianagem).

preciso saber ser tem alguma função do Cursor que retorna o numero de linhas que este irá me retornar.
TBou
Localização: Campo Grande - MS

Thiago Bourscheidt
thiago.info@apoiorural.com.br
Analista de Sistemas

Mensagemem Seg, 01 Ago 2005 5:35 pm

infelizmente, só contando... :-(
dr_gori
Localização: Portland, OR USA

Thomas F. G

Você já respondeu a dúvida de alguém hoje?
http://glufke.net/oracle/search.php?search_id=unanswered

Mensagemem Sex, 05 Ago 2005 4:56 pm

se sua versão do oracle for 9 ou superior, você pode no seu cursor incluir uma coluna com o total de linhas... por exemplo...


cursor empresa is
select cod_empresa, nom_empresa, count(*) over () as total_De_registros
from empresa
where etc...
charlesmafra
Localização: Angola

Charles Mafra
Oracle Developer

Mensagemem Sex, 05 Ago 2005 5:16 pm

Olá charlesmafra

Mandou bem!

Só que esse count(*) over () também funciona no 8i. Mas, infelizmente, é uma função analítica que só tem no banco Enterprise Edition. No Standard Edition não funciona!
dr_gori
Localização: Portland, OR USA

Thomas F. G

Você já respondeu a dúvida de alguém hoje?
http://glufke.net/oracle/search.php?search_id=unanswered

Mensagemem Sex, 02 Set 2005 2:34 pm

Bah, faz tempo q não entro no forum ein.. bom carinha, para não precisar abrir trocentas vezes esse cursor utiliza o esquema a baixo que ta feito e tu pode continuar utilizando as outras colunas numa boa.

Código: Selecionar todos
Select last_value( COLUNA ) over()
,         COLUNA
,         COLUNA2
,         COLUNA3
FROM  TABELA


Abraço! :wink:
leobbg
Localização: PORTO ALEGRE - RS

Leo BBG Consultor Oracle

Mensagemem Ter, 02 Fev 2010 8:07 am

Finalmente achei um tópico sobre isso!

Das duas formas funcionaram no Oracle 10g:

Código: Selecionar todos
select last_value(rownum) over() as total, campos  from tabela

Código: Selecionar todos
select count(*) over() as total, campos  from tabela


Obrigada pessoal!
Simone Isabela
Localização: Belo Horizonte - MG



Voltar para PL/SQL

Quem está online

Usuários navegando neste fórum: Google [Bot] e 4 visitantes