服务器 频道

如何除去SELECT输出的头信息

  【IT168 服务器学院】问:对于 DB2 的 SELECT 语句,缺省情况下,无论是从 DB2 的命令行处理器还是 DB2 的命令窗口下发出 SELECT 语句,其输出信息中除查询出的各行记录之外,总包含有例如字段名,查询出的记录数等头信息,如以下语句及其输出所示:

  db2 select * from org

  DEPTNUMB DEPTNAME MANAGER DIVISION LOCATION

  -------- -------------- ------- ---------- -------------

  10 Head Office 160 Corporate New York

  15 New England 50 Eastern Boston

  20 Mid Atlantic 10 Eastern Washington

  38 South Atlantic 30 Eastern Atlanta

  42 Great Lakes 100 Midwest Chicago

  51 Plains 140 Midwest Dallas

  66 Pacific 270 Western San Francisco

  84 Mountain 290 Western Denver

  8 条记录已选择。

  如果由于用户的某些特殊要求而只需要输出查询的记录内容,而不需要字段名,头信息等内容,对于 DB2 来说,通过什么方法可以实现这一功能呢?

  答:在某些情况下,数据库的用户可能会需要查询结果中仅包含查询到的记录内容,而没有其它额外的说明信息。例如当用于希望将多次查询的结果通过使用管道符“>”,直接定向到一个文本文件中时,如果查询结果中含有字段名,总记录数等头信息,用户就不得不对定向产生的文本文件进行编辑,以便删除这些头信息。如果文件较大,而这样的头信息又过多,那么这一删除操作的工作量将变得很大。因此,如果能够在查询结果中剔出掉这些信息,将会直接满足用户的要求,而省掉了对文本进行删除修改的操作。

  DB2 为用户提供了命令行处理器的命令选项,通过关闭其中的 x 选项的设置,便可实现 SELECT 语句输出中仅包含查询出的记录内容的目的。当该选项打开为 ON 后,在 DB2 命令行处理器中执行的语句所返回数据将不包含头信息(包括字段名),其缺省状态为 OFF。

  用户可通过下述两种方式打开这一选项的设置(同样一上述 SELECT 语句为例):

  1. 在 DB2 命令行处理器中:

  SET DB2OPTIONS=-x (Windows)

  export DB2OPTIONS=-x (Unix)

  $ db2 "select * from staff"

  10 Head Office 160 Corporate New York

  15 New England 50 Eastern Boston

  20 Mid Atlantic 10 Eastern Washington

  38 South Atlantic 30 Eastern Atlanta

  42 Great Lakes 100 Midwest Chicago

  51 Plains 140 Midwest Dallas

  66 Pacific 270 Western San Francisco

  84 Mountain 290 Western Denver

  2. 在 DB2 命令窗口中:

  db2 => update command options using x on (Windows 及 Unix)

  db2 => select * from org

  10 Head Office 160 Corporate New York

  15 New England 50 Eastern Boston

  20 Mid Atlantic 10 Eastern Washington

  38 South Atlantic 30 Eastern Atlanta

  42 Great Lakes 100 Midwest Chicago

  51 Plains 140 Midwest Dallas

  66 Pacific 270 Western San Francisco

  84 Mountain 290 Western Denver

  db2 =>

0
相关文章