查看Oracle数据库中某张表的字段个数
查看Oracle数据库中某张表的字段个数
Oracle中查询某个表的总字段数,要用SQL语句,或者在PL/SQL里面
- select count(column_name) from user_tab_columns where table_name='T_B_AUDITOR'
能够查出来指定的那张表的字段数。
下面是通过大致查看:
select tname,count(*) from col group by tname;- 64 T_A_BOOKSTAGEINFO 4
- 65 T_B_AUDITOR 14
- 66 T_B_BOOKMANAGEMENT 13
- 67 T_B_BOOKSTATUSCONFIG 5
- 68 T_B_CODETREEINFO 8
- 69 T_B_FILTERWORD 11
- 70 T_B_ISBNWHITELIST 11
- 71 T_B_MODEL 10
- 72 T_B_NOTICE 15
- 73 T_B_NOTICEACCEPT 11
- 74 T_B_OPERLOG 10
- 75 T_B_ORGANIZATIONINFO 18
- 76 T_B_PREFIXINFO 15
- 77 T_B_PUBLISHINFO 30
- 78 T_B_ROLE 8
- 79 T_B_ROLEMODEL 6
- 80 T_B_SAMPLEBOOKINFO 89
- 81 T_B_USER 26
- 82 T_B_USERANDROLE 6
- 83 T_B_USERLOGIN 8
- 84 T_B_USERMODEL 6
此时我就联想到了mysql上面去:
直接利用函数来解决:
- mysql> desc test;
- +---------+-------------+------+-----+---------+----------------+
- | Field | Type | Null | Key | Default | Extra |
- +---------+-------------+------+-----+---------+----------------+
- | id | int(11) | NO | PRI | NULL | auto_increment |
- | name | varchar(10) | YES | | NULL | |
- | address | varchar(30) | YES | | NULL | |
- +---------+-------------+------+-----+---------+----------------+
- 3 rows in set (0.01 sec)
- mysql> select found_rows();
- +--------------+
- | found_rows() |
- +--------------+
- | 3 |
- +--------------+
- 1 row in set (0.01 sec)
- mysql> use information_schema
- Database changed
- mysql> select count(*) from columns where table_name="test";
- +----------+
- | count(*) |
- +----------+
- | 3 |
- +----------+
- 1 row in set (0.00 sec)
- mysql> select * from schemata;
- +--------------+--------------------+----------------------------+------------------------+----------+
- | CATALOG_NAME | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH |
- +--------------+--------------------+----------------------------+------------------------+----------+
- | NULL | information_schema | utf8 | utf8_general_ci | NULL |
- | NULL | mysql | utf8 | utf8_general_ci | NULL |
- | NULL | test | utf8 | utf8_general_ci | NULL |
- +--------------+--------------------+----------------------------+------------------------+----------+
- 3 rows in set (0.00 sec)
- mysql> select table_schema,count(*) from tables group by table_schema;
- +--------------------+----------+
- | table_schema | count(*) |
- +--------------------+----------+
- | information_schema | 17 |
- | mysql | 17 |
- | test | 6 |
- +--------------------+----------+
- 3 rows in set (0.00 sec)
其实在系统表information_schema中大多的数据库,表啊都会有记录的。所以要好好研究下这张表呢。
更多Oracle相关信息见Oracle 专题页面 http://www.bkjia.com/topicnews.aspx?tid=12
评论暂时关闭