Иллюстрированный самоучитель по SQL для начинающих

Обработка ошибок

Область заголовка диагностики

В главе 14 мы изучали оператор SET TRANSACTION (задать транзакцию). В нем можно указать DIAGNOSTICS SIZE (размер диагностики). Этот размер является количеством информационных областей, выделяемых для хранения информации о состоянии. Если в операторе SET TRANSACTION не будет предложения DIAGNOSTICS SIZE, то СУБД выделит количество информационных областей, которое в ней установлено по умолчанию.

Заголовок области состоит из восьми элементов, которые приведены в табл. 20.1.

Таблица 20.1. Область заголовка диагностики.

Поля Тип данных
number (количество) Точный числовой, масштаб 0
row_count (количество строк) Точный числовой, масштаб 0
command_functton (командная функция) Символьная строка переменного размера, не менее 128 символов
command_function_code (код командной функции) Точный числовой, масштаб 0
more (больше) Символьная строка, длина 1
transact ions_commited (фиксированные транзакции) Точный числовой, масштаб 0
transactions_rolled_back (откатанные транзакции) Точный числовой, масштаб 0
transactions_active (состояние транзакции) Точный числовой, масштаб 0

Ниже эти элементы описаны более детально.

  • В поле NUMBER хранится количество областей, заполненных диагностической информацией о текущей операции.
  • В поле ROW_COUNT содержится количество строк, задействованных при выполнении оператора SQL INSERT, UPDATE или DELETE.
  • Поле COMMAND_FUNCTION описывает только что выполненный динамический оператор SQL (если последний выполненный оператор SQL действительно был динамическим).
  • Поле COMMAND_FUNCTION_CODE отображает номер кода для только что выполненного динамического оператора SQL (если последний выполненный оператор SQL действительно был динамическим). Каждая динамическая функция имеет соответствующий код.
  • Поле MORE содержит одно из значений: 'Y' (да) или 'N' (нет). Значение 'Y' указывает на то, что записей состояния больше, чем может вместить область диагностики. Значение 'N' означает, что все сгенерированные записи состояния представлены в области диагностики. Вы можете получить необходимое количество записей, увеличив его, используя оператор SET TRANSACTIONS, однако эта возможность зависит от используемой вами реализации.
  • Поле TRANSACTIONS_COMMITED содержит количество совершенных транзакций.
  • Поле TRANSACTIONS_ROLLED_BACK содержит количество транзакций, которые были откатаны.
  • Поле TRANSACTIONS_ACTIVE содержит значение 'Г, если транзакция в настоящее время активна, и значение '0' в противном случае. Транзакция считается допустимой для активизации, если открыт курсор или СУБД находится в ожидании отложенного параметра.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.