Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / SQL и PL/SQL в Oracle10g
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

1.2.7 Форматирование вывода информации в SQL*Plus

Форматирование результатов запроса в Oracle SQL*Plus, настройки SQL*Plus, длина и ширина буфера, параметры LINESIZE, PAGESIZE, WRAP

В SQL*Plus существует множество настроек для форматирования вывода. Описание этих возможностей в официальном руководстве по SQL*Plus занимает десятки страниц. Однако, честно говоря, SQL*Plus — не лучшая среда для создания отчетов к базам данных. Если вам нужны отчеты, намного правильнее будет воспользоваться специализированными средствами для создания отчетов: Oracle Reports, Crystal Reports, Microsoft Reporting Services и т.д. В качестве одного из самых быстрых и простых в освоении вариантов можно рассмотреть Microsoft Access. Поэтому в этом разделе будут рассмотрены только самые основные средства для форматирования вывода SQL*Plus, без которых работать будет очень неудобно.

Первое, с чего необходимо начать — с размера буфера SQL*Plus. Эти параметры проще всего настроить из окна Конфигурация (меню Опции | Конфигурация) — см. рис. 1.2.7-1.

Рис. 1.2.7-1 Окно настроек SQL*Plus

По умолчанию длина буфера составляет 1000 символов (что в большинстве случаев вполне достаточно), а ширина — всего 100 символов, что в реальной работе может оказаться недостаточно. Лучше сделать этот размер большим, например, в 1000 символов.

Следующее, о чем нужно подумать — о настройке длины строки и страницы. Длина строки настраивается при помощи параметра SET LINESIZE (или при помощи того же окна Конфигурация, представленного на рис. 1.2.7-1). По умолчанию длина строки составляет всего 80 символов. Если эта длина превышена, то SQL*Plus автоматически произведет перенос на новую строку. Для большинства реальных (да и учебных) запросов результат будет выглядеть не очень красиво (см. рис. 1.2.7-2).

Рис. 1.2.7-2 Результат выполнения запроса со значением LINESIZE по умолчанию

Размер параметра LINESIZE не может превышать размера буфера SQL*Plus. Обычно я устанавливаю для обоих параметров размер в 1000 символов. Результаты запроса читать будет намного проще (см. рис. 1.2.7-3).

Рис. 1.2.7-3 Результаты запроса после настройки параметра LINESIZE

Однако, как можно увидеть на рис. 1.2.7-3, остается еще одна проблема. SQL*Plus по традиции, оставшейся еще со времен текстовых терминалов, выводит информацию страницами в 14 строк. Для каждой следующей страницы заголовки повторяются заново. Даже для нашего запроса, который возвращает всего 14 строк, с учетом заголовка потребовалось две страницы. Если же запрос будет возвращать сотни строк, читать его результаты будет очень удобно.

Для того, чтобы названия столбцов не повторялись так часто, можно воспользоваться параметром SET PAGESIZE. Этот параметр уже не зависит от длины буфера, но и для него значение в 1000 строк будет вполне удобным. После его применения воспринимать результаты запроса станет проще.

Максимально допустимое значение PAGESIZE — 50 000 строк. Если настроить для этого параметра значение 0, то имена столбцов вообще выводиться не будут.

Если вывод "портят" слишком длинные строковые значения, которые переносятся на следующие строки, можно подумать о применении параметра SET WRAP. По умолчанию для него установлено значение ON, и это означает, что слишком длинные значения будут переноситься на следующую строку. При OFF такие значения будут просто обрезаться.

Управлять отображением столбцов можно при помощи ключевого слова COLUMN. При помощи него можно настроить отображение как значений, так и заголовков в столбцах. Возможностей настройки столбцов очень много, приведем лишь один пример. Чтобы показать значения из столбца Sal в десятичном формате с двумя знаками после запятой, можно выполнить перед запросом команду

COLUMN sal FORMAT 99,99

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 
© 2004-2008, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru