首先我建议您查看SQL*plus reference - 您可能会在那里找到一些有用的提示,例如调整列宽
COL column_name for a20
您可以在 GLOGIN 文件中设置自己的设置。随着时间的推移,就像任何其他 CMD 一样,您将获得恰到好处的偏好。
要描述表格,您可以使用DESC。如果您想要更多数据,请编写您自己的脚本并使用@ 重用它。
如果这一切都不适合您,您可以随时切换到像 Toad 或 SQL 开发人员这样的 GUI。
编辑:
我正在添加一个我自己的脚本,向您展示一些技巧,让您了解如何使 SQL*Plus 在命令行上更加友好。这是用于获取分段大小的。
/* This is the trick - clears &1 and &2 if received an empty string */
set ver off feed off
col 1 new_v 1
col 2 new_v 2
select 1,2 from dual where 1=0;
variable p_owner varchar2(30)
variable p_segment varchar2(30)
/* set bind variables */
begin
:p_owner := '&1';
:p_segment := '&2';
end;
/
set feed 1
break on segment_type skip 1
column MB for a25
select
segment_type,
decode(gi_segment_name + gi_segment_type + gi_tablespace_name , 3 ,'...Grand Total', segment_name) SEGMENT_NAME,
to_char(round(MB,3),'99,999,999.99') MB ,
nvl(tablespace_name,'-*-') tablespace_name
from (
select tablespace_name , segment_type , segment_name , sum(bytes/1024/1024) MB ,
grouping_id(segment_name) gi_segment_name ,
grouping_id(segment_type) gi_segment_type ,
grouping_id(segment_type) gi_tablespace_name
from dba_segments
where ((:p_owner is null and owner = user) or owner like upper(:p_owner))
and (:p_segment is null or segment_name like upper('%'||:p_segment||'%'))
group by rollup(tablespace_name, segment_type , segment_name)
)
where not (gi_segment_name = 1 and gi_segment_type = 0 and gi_tablespace_name = 0)
order by decode(segment_type,'TABLE','0','TABLE PARTITION','1','INDEX','2','INDEX PARTITION','3',segment_type) ,
(case when segment_name like '.%' then 'z' else 'a' end) ,
gi_segment_name ,
MB desc ,
segment_name;
clear break
/* clear definition for &1 and &2 after being used.
allows the variable to be null the next run. */
undefine 1
undefine 2
我会带你了解我在这里做过的一些事情
- 脚本接受两个参数。前 4 行清除
如果没有收到参数。如果不这样做 SQL*Plus 会提示
你为他们。我们不希望这样。
- 在过去的版本中,设置绑定更为重要。它是
旨在保存硬/软解析。最新版本解决了这个
问题。不过,这仍然是最佳做法。
-
break 很不错。你会看到的。
- 分组 ID 显示多个级别的小计。
- 我添加了两个参数,所有者和分段名称。两者都可以包含
外卡。两者都可以为空。如果未提供,查询将获取
当前用户细分。
- Order by decode 使我能够为不同的
段类型。您可以随意更改。
我正在执行这样的脚本
我的细分:
@seg
斯科特的片段
@seg scott
Scott's Emp 相关细分
@seg scott emp
我有类似的脚本用于会话、longops、等待事件、表、约束、锁、终止会话等......在我的日常工作中,我很少再编写 SQL 来查询这些东西了。