全部博文(101)
分类: Oracle
2011-04-19 18:23:30
一.SQL*PLUS(或称sqlplus)里除了我们经常使用的sql语句外,还有另外一些命令,它们通过对标题、
列标题、页宽、页长以及时间等参数的格式化操作来控制sql语句的输出的内容和格式,常见的比如
"set timing on”,"set heading off”等。
二.基本的SqlPlus命令
命令 说明
remark 注释
set headsep 标题换行
ttitle 设置输出页的头标题
btitle 设置输出页的尾标题
column 对sql语句中的列进行格式化处理
break on 通知sqlplus在输出结果中插入空格
compute sum 通知sqlplus计算小计
set linesize(line) 设置sqlplus输出的最大行宽 --
set pagesize 设置页面的最大行数
set newpage 设置页面之间的空行数
spool sqlplus屏幕的文件输入输出命令
注释,同remark
-- 双杠,注释,同remark
set pause sqlplus屏幕输出结果时在页面之间停顿
save 保存当前session最近的sql语句至指定的文件中
host 返回到操作系统环境,类似!
start或@ 执行文件中的命令
edit 使用自定义的编辑器编辑指定文件
define_editor 自定义sqlplus里的编辑器
exit或quit 退出sqlplus
column
column是sqlplus里最实用的一个命令,很多时候sql语句输出的列宽度不合适而影响查看,都需要
用到这个命令来更改select语句中指定列的宽度和标题。大部分时候,我们可以简写column为col即
可,主要有以下两种用法:
•修改列宽度
column c1 format a20 --将列c1(字符型)显示最大宽度调整为20个字符
column c1 format 9999999 --将列c1(num型)显示最大宽度调整为7个字符
•修改列标题
column c1 heading c2 --将c1的列名输出为c2
示例如下:
未修改前的默认设置输出:
SQL> select a.FILE_NAME,a.TABLESPACE_NAME,b.CURRENT_SCN from DBA_DATA_FILES a
,v$database b where a.TABLESPACE_NAME='USERS'; FILE_NAME -----------------------------
---------------------------------------------- TABLESPACE_NAME CURRENT_SCN -----------
------------------- ----------- +DATAGRP/db/datafile/users.259.686941969 USERS
7.3498E+10 修改后的输出结果: SQL> col FILE_NAME for a45 --定义FILE_NAME列最大显示45个
字符 SQL> col TABLESPACE_NAME for a10 --定义该列最大显示10个字符 SQL> col CURRENT_SCN
for 999999999999 --定义该列最长显示12个数字 SQL> col TABLESPACE_NAME heading 'TBS_NAME'
--定义该列输出标题为"TBS_NAME” SQL> / FILE_NAME TBS_NAME CURRENT_SCN ----------------
----------------------------- ---------- -------------
+DATAGRP/db/datafile/users.259.686941969 USERS 73497663251 SQL>
SQL> show sga
Total System Global Area 4198564584
bytes
Fixed Size 746216
bytes
Variable Size 2013265920
bytes
Database Buffers 2181038080
bytes
Redo Buffers 3514368
bytes
SQL> set line 100
SQL> show sga
Total System Global Area 4198564584 bytes
Fixed Size 746216 bytes
Variable Size 2013265920 bytes
Database Buffers 2181038080 bytes
Redo Buffers 3514368 bytes
SQL>
这样结果显示就不会换行了。