列的格式化是使用SQL*Plus的COLUMN命令,COLUMN命令包含各种各样的参数用于控制列标题、列宽、列的显示格式等,下面通过几个小节来介绍COLUMN命令的使用。
1.设置列标题
默认情况下,在执行查询SQL语句时,SQL*Plus会以表中的字段作为标题,由于表中的字段可能并不是让人容易理解的标题,因此经常需要使用COLUMN来设置标题,语法如下所示:
- COLUMN 字段名称 HEADING 标题名
下面的命令将设置scott方案中dept表的字段为中文标题,将产生容易理解的输出:
- SQL> COLUMN deptno HEADING 部门编号
- SQL> COLUMN dname HEADING 部门名称
- SQL> COLUMN LOC HEADING 所在位置
- SQL> SELECT * from dept;
- 部门编号 部门名称 所在位置
- ------------------------------------------------------------------
- 10 财务部 纽约
- 20 研究部 达拉斯
- 30 销售部 南京
- 40 营运部 波士顿
- 60 行政部 远洋
- 50 行政部 波士顿
- 80 神庙 龙山
- 55 勤运部 西北
- 84 发展 郑州
- 已选择9行。
可以看到通过上述COLUMN命令的作用,现在的标题栏已经全部显示为中文了。
2.设置列宽
设置列宽是使用FORMAT参数来指定的,这个参数用来为列宽设置各种显示的格式,命令如下所示:
COLUMN 列名 FOR[MAT] A宽度
设置列宽只适用于非数值类型的列,如果指定宽度小于列标题,将被SQL*Plus截断。
例如可以通过如下的命令使dept显示的部门名称和所在位置更加紧凑一些:
- SQL> COLUMN dname FORMAT A15;
- SQL> COLUMN loc FORMAT A15;
- SQL> SELECT * FROM dept;
- 部门编号 部门名称 所在位置
- ----------------------------------------------------
- 10 财务部 纽约
- 20 研究部 达拉斯
- 30 销售部 南京
- 40 营运部 波士顿
- 60 行政部 远洋
- 50 行政部 波士顿
- 80 神庙 龙山
- 55 勤运部 西北
- 84 发展 郑州
- 已选择9行。
可以看到通过FORMAT A15这样的参数,将部门名称和所在位置的列宽都设置为了15的宽度。FORMAT还具有很多的用于控制列显示格式的选项,感兴趣的读者可以参考SQL*Plus的参考文档。



