Pular para o conteúdo
  • Este tópico contém 18 respostas, 10 vozes e foi atualizado pela última vez 16 anos atrás por burga.
Visualizando 4 posts - 16 até 19 (de 19 do total)
  • Autor
    Posts
  • #92963
    rwarstat
    Participante

      O comando abaixo irá retornar a quantidade de linhas da tabela.
      select count(*) from table_rel

      Abraço,
      Roberto

      #92966
      burga
      Participante

        Deixa eu ver se entendi… se a tabela tem 10 linhas e 5 colunas totalizando 50 informações, porém todas menos 1 coluna estão preenchidas, então você quer uma query que retorne que existem 40 campos preenchidos…

        Seria isto?

        Se sim, você pode fazer um script que monte o select que você necessita utilizando as tabelas do dicionario de dados.

        DECLARE
        STMT VARCHAR2(4000);
        CONTADOR_REGS NUMBER(10);
        CONTADOR_COLS NUMBER(5);
        TABELA VARCHAR2(30);
        BEGIN
        TABELA := 'TABELA'; -- TABELA BUSCADA
        STMT := 'SELECT 0 ' || CHR(10);
        FOR I IN (SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME = TABELA AND NULLABLE = 'Y')
        LOOP
        STMT := STMT || ' + ' || ' (SELECT COUNT(*) FROM ' || TABELA || ' WHERE ' || I.COLUMN_NAME || ' IS NOT NULL )' || CHR(10);
        END LOOP;

        EXECUTE IMMEDIATE 'SELECT COUNT() FROM ' || TABELA INTO CONTADOR_REGS;
        EXECUTE IMMEDIATE 'SELECT COUNT(
        ) FROM USER_TAB_COLUMNS WHERE TABLE_NAME = ''' || TABELA || ''' AND NULLABLE = ''N''' INTO CONTADOR_COLS;

        STMT := STMT || ' + (' || CONTADOR_REGS || ' * ' || CONTADOR_COLS || ') FROM DUAL;';
        DBMS_OUTPUT.PUT_LINE(STMT);
        END;
        /

        Eita… Espero que seja isso, rs… ainda dava pra fazer só com as informações do dicionário, tipo USER_TAB_COLUMNS.NUM_NULLS, coisa do tipo, numero_de_colunas – numero_de_linhas – SUM(USER_TAB_COLUMNS.NUM_NULLS) mas nem sempre o dicionário está mostrando os números reais se as estatisticas forem antigas…

        #92972
        CVPRADO
        Participante

          Tajiri era mais simples que eu pensava, depois de uma seria de pensamentos equivocados, notei que a função COUNT era o q eu precisa, bem menos complicado do que imaginei.

          Aos que sugeriram:

          SELECT COUNT(*) FROM tabela

          Agradeço, isso era o que eu precisava!

          #92981
          burga
          Participante

            😯 😯 😯 😯 😯 😯 😯 😯
            😆 😆 😆 😆 😆 😆 😆 😆

            bom, pelo menos resolveu seu problema…

          Visualizando 4 posts - 16 até 19 (de 19 do total)
          • Você deve fazer login para responder a este tópico.