很多时侯我们需要进行行列转换进行显示, 如下面的例子所示, 要查所有用户下的表和索引的个数时, 下面的输出是不是更容易看懂呢?
ASQL> CROSS SELECT OWNER,OBJECT_TYPE,COUNT(*)
2 FROM DBA_OBJECTS
3 WHERE OBJECT_TYPE IN ('TABLE','INDEX')
4 GROUP BY OWNER,OBJECT_TYPE;
OWNER INDEX TABLE
------------ ----- -----
TSMSYS 1 1
ANYSQL 1
SYS 695 678
OUTLN 3 3
SYSTEM 179 141
XDB 51 36
FLOWS_FILES 4 1
DBSNMP 10 21
HR 19 8
FLOWS_020100 364 164
MDSYS 39 37
CTXSYS 46 37
12 rows returned.
当数据库中遇到块坏时, 首先要确定这个坏块是属于那个对象的, 在AnySQL中可以用定制命令"ORA BLOCK 文件号 块号"来进行查询.
ASQL> ora block 1 9
OWNER NAME PARTITION TYPE TABLESPACE
----- ------ --------- -------- ----------
SYS SYSTEM ROLLBACK SYSTEM
1 rows returned.
数据库中的主键和外键表明了一种表之间的父子联系, 如何在命令行查这层关系呢? 在AnySQL中的"SHOW PARENT/CHILD"命令可以告诉你结果.
ASQL> show parent system.mview$_adv_level
FKNAME TNAME PKNAME
------------------- --------------------- -----------------
MVIEW$_ADV_LEVEL_FK SYSTEM.MVIEW$_ADV_LOG MVIEW$_ADV_LOG_PK
ASQL> show child system.mview$_adv_level
PKNAME TNAME FKNAME
------------------- ------------------------ ---------------------
MVIEW$_ADV_LEVEL_PK SYSTEM.MVIEW$_ADV_ROLLUP MVIEW$_ADV_ROLLUP_CFK
MVIEW$_ADV_LEVEL_PK SYSTEM.MVIEW$_ADV_ROLLUP MVIEW$_ADV_ROLLUP_PFK
更多功能还在发现中, 如果你需要一些特定的功能, 告诉我, 我也可以集成进去.