SQLを使用してテーブルの列数を数える方法は?
Oracle 11g を使用しています
助けてください。t。
select count(*)
from user_tab_columns
where table_name='MYTABLE' --use upper case
大文字の代わりに、小文字の関数を使用できます。例: user_tab_columns where lower(table_name)='table_name'; から count(*) を選択します。
多分このようなもの:
SELECT count(*) FROM user_tab_columns WHERE table_name = 'FOO'
これは、テーブル FOO の列数をカウントします
また、
select count(*) from all_tab_columns where owner='BAR' and table_name='FOO';
所有者はスキーマで、テーブル名は大文字であることに注意してください
古い質問ですが、最近行数とともにこれが必要でした...ここに両方のクエリがあります-行数descでソートされます:
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;