首先,我建议您查看SQL*plus 参考- 您可能会在那里找到一些有用的提示,例如调整列宽
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 向我显示了几个级别的小计。
- 我添加了两个参数,所有者和段名称。两者都可以包含通配符。两者都可以为空。如果未提供,则查询将获取当前用户段。
- 按解码排序使我能够为不同的段类型设置自定义排序顺序。您可以根据需要更改它。
我正在执行这样的脚本我的段:
@seg
斯科特的片段
@seg scott
Scott's Emp 相关部门
@seg scott emp
我有类似的会话脚本、longops、等待事件、表、约束、锁、终止会话等....在我的日常工作中,我很少再编写 SQL 来查询这些东西了。