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


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


(e) в противном случае курсор переводится в открытое состояние, и его позиция устанавливается перед первой строкой T.

Оператор выборки по курсору определяется следующими синтаксическими правилами:

<fetch statement> ::= FETCH [ [ <fetch orientation> ] FROM ] <cursor name> INTO <fetch target list> <fetch orientation> ::= NEXT |PRIOR |FIRST |LAST { ABSOLUTE | RELATIVE } <simple value specification> <fetch target list> ::= <target specification> [ { <comma> <target specification> }... ]

Пояснения:

  1. Если отсутствует указание ориентации чтения (fetchorientation), неявно предполагается наличие ориентации NEXT.
  2. Если неявная или явная ориентация отличается от NEXT, то в объявлении курсора должна присутствовать спецификация SCROLL.
  3. Если в указании ориентации чтения присутствует спецификация простого значения, то тип данных этого значения должен быть типом точных чисел с масштабом 0.
  4. Определим J следующим образом:

      (a) если в указании ориентации чтения содержится спецификация простого значения, то пусть J равняется этому значению;

      (b) если в указании ориентации присутствует NEXT или FIRST, то пусть J равняется +1;

      (c) если в указании ориентации присутствует PRIOR или LAST, то пусть J равняется -1.

  5. Пусть Tt обозначает таблицу той же степени, что таблица T, соответствующая результату спецификации курсора; тогда

      (a) если в указании ориентации присутствует ABSOLUTE, FIRST или LAST, то пусть Ttсодержит все строки T с сохранением их порядка;

      (b) если в указании ориентации присутствует NEXT или RELATIVE с положительным значением J, то

      (i) если таблица T пуста или если позиция курсора установлена на последнюю строку T или за ней, то пусть Tt будет пустой таблицей;

      (ii) если позиция курсора установлена на строку R, не являющуюся последней строкой T, то пусть Tt содержит все строки T, стоящие по порядку за R, с сохранением их порядка в T;

      (iii) если позиция курсора установлена перед строкой R, то пусть Tt содержит строку R и все строки T, стоящие по порядку за R, с сохранением их порядка в T;




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