Введение в стандарты языка баз данных SQL


Манипулирование данными - часть 2


  • Если T является обновляемой таблицей, то пусть TU обозначает базовую таблицу, на которой в конечном счете базируется вычисление выражения запроса.
  • Если в спецификации сортировки содержится раздел задания порядка сортировки (collateclause), то столбец сортировки должен иметь тип данных символьных строк.
  • Если специфицирован раздел обновляемости с FORUPDATE и явным или неявным указанием списка имен столбцов, то таблица T должна быть обновляемой, и спецификация курсора не должна содержать ключевого слова INSENSITIVE.
  • Если раздел обновляемости с FORUPDATE без списка имен столбцов специфицирован или неявно подразумевается, то по умолчанию предполагается наличие списка имен столбцов, включающего имена каждого столбца TU.
  • Если специфицирован раздел обновляемости с FORUPDATE со списком имен столбцов, каждое имя в этом списке должно быть именем столбца TU.
  • Если T является обновляемой таблицей, то для каждой строки T, существует в точности одна соответствующая строка TU, из которой порождена эта строка T.
  • Спецификация INSENSITIVE означает, что после открытия курсора изменения, производимые в той же транзакции над строками таблицы TU, не должны оказывать влияния на состояние таблицы T; спецификация SCROLL означает, что после открытия курсора разрешается произвольное изменение его позиции.
  • Оператор открытия курсора определяется следующим синтаксическим правилом:

    <open statement> ::= OPEN <cursor name>

    Пояснения:

    1. Пусть S обозначает спецификацию открываемого курсора.
    2. При выполнении оператора открытия курсора выполняются следующие действия:

        (a) создается копия S, и в ней все вхождения спецификации цели (имена параметров или внешних переменных) заменяются на соответствующие значения, а также символические константы и вызовы функций даты времени заменяются на соответствующие текущие значения;

        (b) пусть T обозначает таблицу, специфицированную копией S;

        (c) создается описатель этой таблицы и заполняется в соответствии с особенностями спецификации курсора;

        (d) если S содержит INSENSITIVE, то создается копия T, курсор переводится в открытое состояние, и его позиция устанавливается перед первой строкой копии T;




        - Начало -  - Назад -  - Вперед -