Contar linhas

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
netonasc
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 13
Registrado em: Qui, 05 Mai 2016 9:10 am

Boa tarde pessoal,
alguém tem ou sabe alguma query para contar as linhas de todas as tabelas de um banco oracle, tentei usar o campo num_rows da tabela all_tables mas os valores não estão atualizados e eu não tenho permissão para atualizar. Preciso fazer um count(*) em todas as tabelas ao mesmo tempo.
alguém sabe alguma forma ?


Valeu.
Avatar do usuário
adrianoturbo
Moderador
Moderador
Mensagens: 393
Registrado em: Qui, 20 Mar 2008 4:09 pm
Localização: Brasília
Adriano Alves
---Para cada problema dificil existe uma solução simples.----

Brother ,faça uma consulta dinâmica criando o schema abaixo no seu banco :

Selecionar tudo

DECLARE
val NUMBER;
BEGIN
FOR I IN (SELECT TABLE_NAME FROM USER_TABLES) LOOP
EXECUTE IMMEDIATE 'SELECT count(*) FROM ' || i.table_name INTO val;
DBMS_OUTPUT.PUT_LINE(i.table_name || ' ==> ' || val );
END LOOP;
END;
Agora basta rodar o select abaixo para obter o total de todas as linhas de todas as tabelas do seu banco .

Selecionar tudo


select sum (linhas)total_linhas from 
(select
   table_name,
   num_rows linhas
from
   dba_tables)
Bom é isso,espero ter ajudado.
Boa sorte.
Avatar do usuário
vitellozzi
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 50
Registrado em: Qua, 15 Set 2010 9:53 am
Localização: Itatiba

Olá seria algo simples assim :

Selecionar tudo

SELECT TABLE_NAME, NUM_ROWS FROM USER_TABLES WHERE NUM_ROWS > 0;
Sem mais,
Responder
  • Informação
  • Quem está online

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