SQL*Plus 格式化查询结果

为了在 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 命令来手动取消头标题和底标题的设置消息。

原文地址:https://www.cnblogs.com/niujifei/p/11062529.html