Cursor - Como saber quantos registros

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
marcoantoniorocha
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 8
Registrado em: Seg, 24 Abr 2006 9:33 am
Localização: São Carlos - SP
Marco Antonio Rocha

Pessoal,

Preciso saber quantos registros há no cursor que eu acabei de abrir, para saber se exporto o resultado num arquivo ou não. Tentei com esse cursor, mas não deu muito certo.

Selecionar tudo

 CURSOR%ROWCOUNT
Alguém poderia me ajudar?

Obrigado,
Marco
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

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

Terá que fazer um COUNT no seu SQL.
O ROWCOUNT só mostra quantos já foram feito FETCH no cursor.
LoadingXp
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 65
Registrado em: Sex, 30 Mar 2007 11:57 am
Localização: SP
Contato:
Att.

Luciano Alvarenga M. Pires
DBA ORACLE CERTIFICADO
http://fulloracle.blogspot.com
------------------------------------
Dinheiro é o combustivel da sociedade industrial. Mas na sociedade da informática o combustivel, o poder, é o conhecimento.

Meu amigo você pode fazer o seguinte:

Selecionar tudo

select count(1) from (SELECT * FROM SUATABELA)

Ele vai retornar a quantidade de linhas da sua consulta...

[]'s
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Fala brothers, beleza?
Uma outra dica:

Selecionar tudo


  SELECT COUNT(1)
     FROM SUA_TABLE;

qualquer coisa, manda ai.
renan_pre
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 50
Registrado em: Ter, 10 Abr 2007 11:08 am
Localização: São Paulo - SP
M. Renan

Ola caros,
tenho uma dúvida sobre isso....
além de eu precisar saber quantos registros retorna o cursor, no caso:

Selecionar tudo

select count(1) from (select * from tabela)
eu precisava saber se dentre estes registros, no meu caso retornam 6, a descrição do produto são iguais... se houver registros com apenas a descrição igual, eu devo exibir no relatorio somente um dos registros com mesma descrição...
se dos 6, 4 tem descrições diferentes e dois iguais, então devo exibir apenas 5 registros, e descartar um dos registros q possuir descrição igual...

como posso fazer isso ????

Abraços
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Ai vai brother:

Selecionar tudo

Select DISTINCT [campo]
   from [tabela]
Ele retorna uma única linha, caso o campo tenha o mesmo valor.

qualquer coisa, manda ai.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

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

Se quiser CONTAR, pode usar assim:

Selecionar tudo

select count (distinct seu_campo)
from sua_tabela
Dessa forma ele conta o número de ocorrências distintas (sem repetir).
renan_pre
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 50
Registrado em: Ter, 10 Abr 2007 11:08 am
Localização: São Paulo - SP
M. Renan

Brother, segue o código:

Selecionar tudo

Select mvto_kit_produzido.cd_kit, 
           mvto_kit_produzido.dt_validade, 
           itmvto_kit_produzido.cd_mvto_estoque, 
           itmvto_kit_produzido.cd_produto, 
           itmvto_kit_produzido.cd_lote, 
           produto.ds_produto), 
           itmvto_kit_produzido.dt_validade validade_produto 
From dbamv.mvto_kit_produzido, 
         dbamv.itmvto_kit_produzido, 
         dbamv.produto 
Where itmvto_kit_produzido.cd_mvto_estoque = mvto_kit_produzido.cd_mvto_estoque 
     and produto.cd_produto = mvto_kit_produzido.cd_kit 
     and itmvto_kit_produzido.cd_produto = 1556 --:cd_produto1 
     and trunc(itmvto_kit_produzido.dt_validade) = '01/12/2006' --trunc(:dt_validade1) 
     and itmvto_kit_produzido.cd_lote = '121212' --:cd_lote1 
nos registros que retornam, é só a ds_produto q é igual.... porém o cd_mvto_estoque é diferente....
como eu colocaria faria o distinct nesse caso??

Abraço
renan_pre
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 50
Registrado em: Ter, 10 Abr 2007 11:08 am
Localização: São Paulo - SP
M. Renan

Pessoal, consegui fazer!

na verdade eu não estou usando o cd_mvto_estoque para nada, então exclui ele da query e fiz um group by com os outros campos.... funcionou !!!

valeu
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 17 visitantes