Язык модулей SQL (46104)

Посмотреть архив целиком

Язык модулей SQL

7.1 <Модуль> ()

Функция

Определяет модуль.

Формат

::=

[...]

< procedure > ...

::=

LANGUAGE { COBOL | FORTRAN | PASCAL | PLI }

::=

AUTHORIZATION

::=

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

  1. Для каждого <определения курсора> () в <модуле> () должна существовать ровно одна <процедура> () в этом <модуле> (), которая содержит <оператор открытия> () со спецификацией <имени курсора> (), объявленного в <объявлении курсора> ().

  2. <Модуль> () должен быть ассоциирован с прикладной программой при ее выполнения. Прикладная программа должна быть ассоциирована не более чем с одним <модулем> ().

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

  1. Если <раздел языка> () <модуля> () специфицирует COBOL (соответственно FORTRAN, PASCAL, PLI) и если агент, выполняющий вызов <процедуры> () этого <модуля> (), не является стандартной программой на языке COBOL (соответственно FORTRAN, Pascal, PL/1), то результат неопределен.

  2. После выполнения агентом на языке программирования последнего вызова <процедуры> () в <модуле> () неявно выполняется <оператор фиксации> () или <оператор отката> (). Выбор одного из этих <операторов SQL> () определяется реализацией. Если имеет место невосстанавлваемая ошибка, то СУБД должна выполнить <оператор отката> ().

7.2. <Раздел имени модуля> ()

Функция

Задает имя <модуля> ().

Формат

::=

MODULE []

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

  1. <Имя модуля> () должно отличаться от <имени модуля> () любого другого <модуля> () в том же окружении. Понятие окружения определяется в реализации.

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

  1. <Раздел имени модуля> () определяет необязательный <идентификатор> () как <имя модуля> (), определяющее содержащий <модуль> () в данном окружении.

7.3. <Процедура> ()

Функция

Определяет процедуру и оператор языка SQL.

Формат

::=

PROCEDURE

...;

;

::=

|

::=

SQLCODE

::=

|

|

|

|

|

|

|

| ), результатом которого явилась пустая таблица, то в параметр SQLCODE устанавливается значение 100.
iv) Если S - <оператор модификации: поисковый> () или <оператор удаления: поисковый>) () с поиском, для которых не нашлись объектные строки для модификации или удаления, то в параметр SQLCODE устанавливается значение 100.
v) Во всех остальных случаях в параметр SQLCODE устанавливается 0.


b) Если S выполнен неуспешно, то


    • i) Все изменения, произведенные над базой данных при выполнении S, аннулируются.
      ii) В параметр SQLCODE устанавливается отрицательное число со значением, определяемым реализацией

Язык манипулирования данными (data manipulation language)

8.1 <Оператор закрытия> (ent>)

Функция

Закрыть курсор.

Формат

::=

CLOSE

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

  1. Объемлющий модуль должен содержать объявление курсора, в котором используется это же имя курсора.

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

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

  2. Курсор переводится в закрытое состояние и разрушается копия <спецификации курсора> ().

8.2. <Оператор фиксации> ()

Функция

Заканчивает текущую транзакцию с фиксацией.

Формат

::=

COMMIT WORK

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

Нет.

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

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

  2. Закрываются любые курсоры, открытые данной транзакцией.

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

8.3. <Объявление курсора> ()

Функция

Определяет курсор.

Формат

::=

DECLARE CURSOR

FOR

::=

[...]

::=

| UNION [ALL]

::=

| ()

::=

ORDER BY

[{,}...]

::=

{ | }

[ASC | DESC]

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

  1. <Имя курсора> () не должно быть идентичным любому другому <имени курсора> (), специфицируемого в каком-либо другом <объявлении курсора> () того же модуля.

  2. Любое <имя параметра> (), содержащееся в <спецификации курсора> (), должно быть определено в <объявлении параметра> () <процедуры> () объемлющего <модуля> (), который содержит <оператор открытия> (), специфицирующий это <имя курсора> ().
    Замечание: Cм. Синтаксическое правило 7.1, "<модуль> ()".

  3. Пусть Т обозначает таблицу, специфицированную в <спецификации курсора> ().


  4. a) Если указано ORDER BY, то Т является только читаемой таблицей со специфицированным порядком сортировки.
    b) Если не указаны ни ORDER BY ни UNION и <спецификация запроса> () является из меняемой (updatable), то Т - изменяемая таблица.
    c) Иначе Т - только читаемая таблица.


  5. a) Если не указано UNION, то описанием Т является описание <спецификации запроса> ().
    b) Если указано UNION, то пусть для каждого специфицированного UNION Т1 и Т2 обозначают таблицы, которые специфицированы в <выражении запроса> () и <терме запроса> (). <Список выборки> (

    Файл
    30208-1.rtf
    170200.rtf
    91251.rtf
    77204-1.rtf
    136711.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.