Db2: как форматировать вывод?

#db2

#db2

Вопрос:

Мне не нравится вывод консоли db2

 db2 => SELECT city,SUM(sales) as sum from offices group by city;

CITY                                                                                            SUM                              
---------------------------------------------------------------------------------------------------- ---------------------------------
Rome                                                                                                                        14000,
London                                                                                                                         19000,
  

Я бы предпочел что-то вроде этого

 db2 => SELECT city,SUM(sales) as sum from offices group by city;

CITY                           SUM                              
------------------------
Rome                           14000
London                         19000                              
  

В Oracle я использую

 set feedback on;
set linesize 9000
set  colsep |
column column1 format a30
column column2 format a20
....
  

И я получаю хороший вывод
Как форматировать столбцы в DB2?
Меня интересует максимальный размер (a30 означает отображение 30 символов).

Ответ №1:

Форматирование выходных данных SQL — это работа для клиентского приложения.

Ваш вопрос показывает использование устаревшего приложения interactive Db2 Command-Line-Processor (Db2 CLP), поставляемого с некоторыми клиентами Db2. Db2 CLP имеет ограниченную функциональность форматирования по сравнению с Oracle SQL * Plus.

Однако, если вы привыкли к форматированию в стиле Oracle SQL*Plus , с некоторыми клиентами Db2 поставляется инструмент под названием clpplus, который эмулирует SQL*Plus . Это означает, что вам не нужно изучать новый синтаксис для форматирования и многих других действий.

Вы можете использовать clpplus вместо интерактивного Db2 CLP и clpplus позволяет использовать многие функции и синтаксис Oracle SQL*Plus с базами данных Db2.

Ответ №2:

Я нашел хороший обходной путь, используя синтаксис substr SQL

Без substr

 select title,year from titles;

TITLE                                                                                                                                                                                                                                                                                                                                                                                       YEAR                  
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------
Fantasia                                                                                                                                                                                                                                                                                                                                                                                           1940
  

ИК!

С использованием substr

 select substr(title,1,19) as title, substr(year,1,4) as year from titles;

TITLE                                  YEAR
-------------------------------------- ----
FANTASIA                               1940
  

Хорошо!