2012-04-10 2 views

ответ

27
select count(*) 
from user_tab_columns 
where table_name='MYTABLE' --use upper case 
+0

ничего не было в таблице user_tab_columns –

+0

не работает для меня – BekaBot

+0

Это сработало, но имя таблицы чувствительно к регистру. –

4

Может быть что-то вроде этого:

SELECT count(*) FROM user_tab_columns WHERE table_name = 'FOO' 

это будет подсчитывать количество столбцов в В таблице FOO

Вы также можете просто

select count(*) from all_tab_columns where owner='BAR' and table_name='FOO'; 

где владелец схемы и заметим, что Названия таблиц - это верхний регистр

+0

Если мне нужно не только учитывать значение, но и определенное значение столбца, можно ли его легко добавить? – zygimantus

5

Старый вопрос - но я в последнее время это было нужно вместе с рядом рассчитывать ... вот запрос для обоих - отсортировано по строкам кол убывания:

select t.owner, t.table_name, t.num_rows, count(*) 
from all_tables t left join all_tab_columns c on t.table_name = c.table_name 
where num_rows is not null 
group by t.owner, t.table_name, t.num_rows 
order by t.num_rows desc; 
Смежные вопросы