格式化查询结果
一、 COLUMN命令
该命令可以实现格式化查询结果、设置列宽度、重新设置列标题等功能。
1. 格式:COL[UMN] [column_name|alias|option]
column_name:用于指定要设置的列的名称。
alias:用于指定列的别名,通过它可以把英文标题设置为汉字。
option:用于指定某个列的格式,option选项的值及说明:
值 | 说明 |
CLEAR | 消除指定列所设置的显示属性,从而回复列使用默认的显示属性 |
FORMAT | 格式化指定的列 |
HEADING | 定义列标题 |
JUSTIFY | 调整列标题的对齐方式。默认情况下:数值类型的列为右对齐,其他类型的列为左对齐 |
NULL | 指定一个字符串,如果列的值为NULL,则由该字符串代替 |
PRINT/NOPRINT | 显示列标题或隐藏列标题,默认为:PRINT |
ON|OFF | 控制定义的显示属性的状态,OFF表示定义的所有显示属性都不起作用,默认为ON |
WRAPPED | 当字符串的长度超过显示宽度时,将字符串的超出部分折叠到下一行显示 |
WORD_WRAPPED | 表示从一个完整的字符串处折叠 |
TRUNCATED | 表示截断字符串尾部 |
2.如果在关键字column后面未指定任何参数,则column命令将显示SQL*Plus环境中所有列的当前定义属性;如果在column后面指定某个列名,则显示指定列的当前定义属性。
3.FORMAT:用于格式化指定的列,需要在FORMAT关键字后跟一个掩码格式。
例:使用format选项格式化scott.emp表中的员工工资为“$999,999.00”格式:
4.HEADING:该选项用于定义列标题,比如,许多数据表或视图的列名都为英文形式,可以使用此选项将英文形式的列标题显示为中文形式。
例:使用heading选项把scott.emp表中的empno、ename、sal3个列名转换为中文形式:
5.NULL选项:在该选项的后面指定一个字符串,如果列的值为null,则用该字符串代替空值。
例:使用NULL选项把scoff.emp表中comm列值为null显示成“空值“字符串:
6.ON|OFF选项:该选项用于控制定义的显示属性的状态,OFF表示定义的所有显示属性都不起作用,默认为ON。
例:设置scott.emp表中的sal列(工资列)的格式为“$999,999.00”,但同时使用off选项取消定义的列属性,输出显示sal列没有被格式化:
二、 TTITLE和BTITLE命令
在SQL*Plus环境中,执行SQL语句后的显示结果在默认情况下包括列标题、页分割线、查询结果和行数合计等内容,用这些默认的输出信息打印报表,并不十分美观。如果能为整个输出结果设置报表头(即头标题)、为每页都设置页标题和页码、为整个输出结果设置报表尾(如打印时间或打印人员),那么使用这样的输出结果打印报表一定十分美观。为了实现这些功能,SQL*Plus工具提供了TTITLE和BTITLE命令,这两个命令分别用来设置打印时每页的顶部和底部标题。
1. TTITLE命令格式:TTI[TLE] [printspec] [text|variable…]|[OFF|ON]
2. printspec:用来作为头标题的修饰性选项。printspec值及说明:
值 | 说明 |
COL | 指定在当前行的第几列打印头部标题 |
SKIP | 跳到从下一行开始的第几行,默认为1 |
LEFT | 在当前行中左对齐打印数据 |
CENTER | 在当前行中间打印数据 |
RIGHT | 在当前行中右对齐打印数据 |
BOLD | 以黑体打印数据 |
3. text:用于设置输出结果的头标题(即报表头文字)。
4. variable:用于在头标题中输出相应的变量值。
5. OFF:表示禁止打印头标题。
6. ON:表示允许打印头标题。
7. 注意:BTITLE的语法格式与TTITLE的语法格式相同。如果在TTITLE或BTITLE命令后没有任何参数,则显示当前的TTITLE或BTITLE的定义。
8. 例:打印输出scott.salgrade数据表中的所有数据,并要求为每页设置头标题(报表名称)和底标题(打印时间和打印人)。头标题“销售情况排行表”是一个固定的字符串:
9. 头标题出可以使用变量来输出:
10. 上面代码中所设置的头标题和底标题的有效期直到本次会话结束后才终止。若要手动清除这些设置,可以分别使用ttitle off命令和btitle off命令取消头标题和底标题的设置信息。