为了在 SQL*Plus 环境中生成符合用户需要规范的报表,SQL*Plus 工具提供了多个用于格式化查询结果的命令,使用这些命令可以实现设置列的标题、定义输出值的显示格式和显示宽度、为报表增加头标题和底标题、在报表中显示当前日期和页号等。
一、Column 命令
该命令可以实现格式化查询结果、设置列宽度、重新设置列标题等功能。
语法格式:
col[umn] [column_name | alias | option]
- columen_name:用于指定设置的列的名称。
- alias:用于指定列的别名,通过它可以把英文列标题设置为汉字。
- option:用于指定某个列的显示格式,option 选项的值及其说明如下:
option 选项的值 | 说明 |
clear | 消除指定列所设置的显示属性,从而回复列使用默认的显示属性 |
format | 格式化指定的列 |
heading | 定义列标题 |
justify | 调整列标题的对其方式。默认数值类型的列为右对齐,其他类型的列为左对齐 |
null | 指定一个字符串,如果列的值为null,则由该字符串代替 |
print/noprint | 心事列标题或隐藏列标题,默认为print |
on|off | 控制定义的显示属性的状态,off表示定义的所有显示属性都不起作用,默认为on |
wrapped | 当字符串的长度超过显示宽度时,将字符串的超出部分折叠到下一行显示 |
word_wrapped | 表示从一个完整的字符处折叠 |
truncated | 表示截断字符串尾部 |
如果关键字 column 后面未指定任何参数,则 column 命令将显示 SQL*Plus 环境中所有列的当前定义属性;如果在 column 后面指定某个列名,则显示指定列的当前定义属性。
常用 option 选项如下:
1、format 命令
该选项用于格式化指定的列,需要在 format 关键字的后面跟一个掩码格式。
2、heading 命令
该选项用于定义列标题,比如,许多数据表或试图的列名都为英文格式,可以使用此选项将英文形式的列标题显示为中文格式。
EG:
SQL > col empno heading 雇员编号 SQL > col ename heading 雇员姓名 SQL > select empno,ename from scott.emp
这样就可以将数据库查出来的列名以中文的格式显示
3、null 命令
该选项的后面指定一个字符串,如果列的值为 null,则用字符串代替空值。
EG:
SQL > col common null "空值" SQL > select empno,common from scott.emp where comm is null
这样当从表中查出来的common 的这一列没有值得时候,就会在common 这一列下面显示 “空值” 的字符串。
4、on | off 命令
该选项用于控制定义的显示属性的状态,off 表示定义的所有显示属性都不起作用,默认为 on。
5、wrapped / word_wrapped 选项
这两个选项都用于实现折行的功能,wrapped 选项按照指定长度折行,Word_wrapped 选项按照完整的字符折行。
二、Ttitle 和 Btitle
在 SQL*Plus 环境中,执行 SQL语句后的显示结果在默认情况下包括列标题、页分割线、查询结果和行数合计等内容。可以为整个输出结果设置报表头(头标题)、为每页都这是页标题和页码、为整个输出结果设置报表尾,会使打印报表更美观。SQL*Plus 就为我们提供了 Ttitle 和 Btitle 命令,这个两个命令分别用来设置打印时每页的顶部和底部标题。
Ttitle 命令语法格式如下:
Tti[tle] [printspect [text | variable] ...] | [off | on]
- printspec:用来作为头标题的修饰性选项,有如下的值:
printspec 选项的值 | 说明 |
col | 指定在当前行的第几列打印头部标题 |
skip | 跳到从下一行开始的第几行,默认为1 |
left | 在当前行中左对齐打印数据 |
center | 在当前行中间打印数据 |
right | 在当前行中右对齐打印数据 |
bold | 以黑体打印数据 |
- text:用于设置输出结果的头标题(报表头文字)
- variable :用于在头标题中输出相应的变量值
- off:表示禁止打印头标题
- on:表示允许打印头标题
注意:Btitle 的语法格式与 Ttitle 的语法格式相同,如果在 Ttitle 或 Btitle 命令没有任何参数,则显示当前的 Ttitle 或 Btitle 的定义。
每次设置的头标题和底标题有效期直到本次会话结束后终止。可以使用 ttitle off 命令和 btitle 命令来手动取消头标题和底标题的设置消息。