Мегаобучалка Главная | О нас | Обратная связь


Синтаксические правила



2019-05-23 217 Обсуждений (0)
Синтаксические правила 0.00 из 5.00 0 оценок




1. Содержащий <модуль> (<module>) должен содержать <объявление курсора> (<declare cursor>) CR с тем же <именем курсора> (<cursor name>), что и <имя курсора> (<cursor name>) в <операторе открытия> (<open statement>).

Общие правила

1. Курсор CR должен быть в закрытом состоянии.

2. Пусть S обозначает <спецификацию курсора> (<cursor specification> курсора CR.

3. Курсор CR переводится в открытое состояние следующими шагами:
а) Фактически создается копия S, в которой каждая <спецификация цели> (<target specification>) заменяется на значение идентифицируемой цели.
b) Если S специфицирует только читаемую таблицу, то эта таблица фактически создается в соответствии со спецификацией - копией S.
c) Курсор CR переводится в открытое состояние и его позиция устанавливается перед первой строкой таблицы.

8.9. <Оператор отката> (<rollback statement>)

Функция

Завершает текущую транзакцию с откатом.

Формат

<rollback statement> ::=

          ROLLBACK WORK

Синтаксические правила

Нет.

Общие правила

1. Любые изменения базы данных, совершенные в текущей транзакции, аннулируются.

2. Любой курсор, открывавшийся в текущей транзакции, закрывается.

3. Текущая транзакция завершается.

8.10. <Оператор выборки> (<select statement>)

Функция

Выбирает значения из специфицированной строки таблицы.

Формат

<select statement> ::=

    SELECT [ALL | DISTINCT] <select name>

    INTO <select target list>

    <table expression>

<select target list>::=

    <target specification> [{,<target specification>}...]

Синтаксические правила

1. Применимые <привилегии> (<privileges>) для каждого <имени таблицы> (<table name>) должны включать SELECT.
Замечание: Применимые <привилегии> (<privileges>) для <имени таблицы> (<table name>) определяются в 6.10, "<определение привилегий> (<privileges definition>)".

2. <Выражение, <вырабатывающее таблицу> (<table expression>) не должно включать <раздел group by> (<group by clause>) или <раздел having> <having clause> и не должно идентифицировать сгруппированное представление.

3. Число элементов в <списке выборки> (<select list>) должно быть таким же, как число элементов в <списке целей выборки> (<select target list>).

4.
а) Если тип данных цели, указанной i-ой <спецификацией цели> (<target specification>) в <списке целей выборки> (<select target list>), является типом символьных строк, то тип данных i-ого <выражения, вырабатывающего значение> (<value expression>) в <списке выборки> (<select list>) должен быть типом символьных строк.
b) Если тип данных цели, указанной i-ой <спецификацией цели> (<target specification>) в <списке целей выборки> (<select target list>), является типом целых чисел, то тип данных i-ого <выражения, вырабатывающего значение> (<value expression>) в <списке выборки> (<select list>) должен быть типом точных чисел.
c) Если тип данных цели, указанной i-ой <спецификацией цели> (<target specification>) в <списке целей выборки> (<select target list>), является типом приблизительных чисел, то тип данных i-ого <выражения, вырабатывающего значение> (<value expression>) <списке выборки> (<select list>) должен быть типом приблизительных чисел.

5. Пусть S обозначает <спецификацию запроса> (<query specification>) с теми же <списком выборки> (<select list>) и <выражением, вырабатывающим таблицу> (<table expression>), какие указаны в <операторе выборки> (<select statement>), и содержащий ALL или DISTINCT, если они присутствуют в <операторе выборки> (<select statement>). S должна быть допустимой <спецификацией запроса> (<query specification>).

Общие правила

1. Пусть R обозначает результат <спецификации запроса> (<query specification>) S.

2. Мощность R не должна быть больше единицы. Если R пуст, то параметру SQLCODE присваивается значение 100 и и значения не присваиваются целям, идентифицированным в <списке целей выбора> (<select target list>).

3. Если R не пуст, то значения строки R присваиваются соответствующим целям.

4. Присваивание значений целям из <списка целей выборки> (<select target list>), кроме параметра SQLCODE, осуществляются в порядке, определяемом реализацией. Параметр SQLCODE получает значение последним.

5. Если в процессе присваивания значений целям фиксируется ошибка, то в параметр SQLCODE устанавливается отрицательное значение, определяемое реализацией, и значения целей, отличных от параметра SQLCODE, зависят от реализации.

6. Цель, идентифицированная i-той <спецификацией цели> (<target specification>) из <списка целей выборки> (<select target list>), соответствует i-ому значению в строке R.

7. Пусть V обозначает идентифицированную цель, а v соответствующее значение в строке R.

8. Если v является неопределенным значением, то для V должен быть специфицирован индикатор, и этот индикатор устанавливается в -1. Если v - не неопределенное значение, и V имеет индикатор, то:
а) Если тип данных V есть тип символьных строк длины L и длина M v больше L, то индикатор получает значение M.
b) В противном случае значение индикатора устанавливается в 0.

9.
a) Если тип данных V есть тип символьных строк, и длина v равна длине V, то значением V становится v.
b) Если тип данных V есть тип символьных строк длины L, и длина v больше L, то значением V становятся первые L символов v.
c) Если тип данных V есть тип символьных строк длины L, и длина M v меньше L, то значением первых M символов V становится v, и в последние L-M символов V устанавливается символ пробела.
d) Если тип данных V есть тип точных чисел, то должно существовать представление значения v в типе данных V такое, чтобы не потерялись никакие первые значащие цифры, и значением V становится это представление.
e) Если тип данных V есть тип приблизительных чисел, то значением V становится приблизительное значение v.

8.11. <Оператор модификации: позиционный> (<update statement: positioned>)

Функция

Модифицирует строку таблицы.

Формат

<update statement: positioned> ::=

         UPDATE <table name>

          SET <set clause:positioned>

              [{,<set clause:positioned>}...]

          WHERE CURRENT OF <cursor name>

<set clause: positioned> ::=

          <object column:positioned> =

          { <value expressionession> | NULL }

<object column: positioned> ::= <column name>



2019-05-23 217 Обсуждений (0)
Синтаксические правила 0.00 из 5.00 0 оценок









Обсуждение в статье: Синтаксические правила

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (217)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)