Оператор выполнения подготовленного оператора — КиберПедия 

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Оператор выполнения подготовленного оператора

2020-04-01 84
Оператор выполнения подготовленного оператора 0.00 из 5.00 0 оценок
Заказать работу

Оператор EXECUTE служит для выполнения ранее подготовленного оператора SQL типа 'N' (не требующего применения курсора) или для совмещенной подготовки и выполнения такого оператора. Синтаксис оператора EXECUTE:

<execute-statement>::=

EXECUTE

 {<statement-name> [USING <host-vars-list>]

 (IMMEDIATE <host-string-variable> }

Для выполнения подготовленного оператора служит первый вариант оператора EXECUTE. В этом случае <statement-name> должен задавать имя, употреблявшееся ранее в операторе PREPARE. Если в подготовленном операторе присутствуют формальные параметры, то в операторе EXECUTE должен задаваться список фактических параметров <host-vars-list>. Число и типы фактических параметров должны соответствовать числу и типам формальных параметров подготовленного оператора.

Второй вариант оператора EXECUTE предназначен в Oracle для совмещенной подготовки и выполнения оператора SQL типа 'N'. В этом случае параметром оператора EXECUTE является строка, которая должна содержать текст оператора SQL (эту строку разрешается также задавать литерально). Запрещается использование в этом операторе переменных включающей программы (формальных параметров).

Работа с динамическими операторами SQL через курсоры

Для использования таких операторов используется расширение механизма курсоров стандарта SQL. Во-первых, при определении курсора можно указывать не только литеральную спецификацию курсора, но и имя оператора, вводимое с помощью оператора PREPARE (в этом случае оператор PREPARE должен текстуально находиться выше оператора DECLARE). Тем самым полный синтаксис оператора DECLARE становится следующим:

<declare cursor>::=

DECLARE <cursor name> CURSOR

FOR { <cursor specification> | <statement-name> }

Далее, поскольку для такого курсора в статике неизвестна информация о входных и выходных переменных включающей программы, то используется другая форма операторов OPEN и FETCH.

Полный синтаксис этих операторов становится следующим:

<open statement>::=

OPEN <cursor name>

  [USING { <host-vars-list> | DESCRIPTOR <descr-name> }]

<fetch statement>::=

FETCH <cursor name>

 { INTO <fetch target list>

 (USING <host-vars-list>

 (USING DESCRIPTOR <descr-name> }

Как видно, предлагается два способа задания фактических входных и выходных параметров: прямое с указанием в операторах OPEN и/или FETCH списков имен переменных включающей программы и косвенное, когда число параметров и их адреса сообщаются через дополнительную структуру-дескриптор.

Первый способ предлагается использовать для работы с операторами выборки, для которых фиксирован набор формальных входных и выходных параметров. Точнее говоря, что касается выходных параметров, должны быть фиксированы число и типы элементов списка выборки.

Второй способ работы с динамически откомпилированными операторами, требующими использования курсоров, состоит в использовании дескрипторов динамически формируемых списков параметров. В этом случае вся ответственность за соответствие типов фактических и формальных параметров ложится на программиста. В результате ошибки при формировании такого списка, в частности, может быть испорчена память Си-программы.

Заключение

Будучи стандартным языком доступа к реляционной базе данных, SQL оказывает большое влияние на все сегменты компьютерного рынка. Компания IBM приняла SQL в качестве унифицирующей технологии баз данных для линии своих продуктов. Все поставщики мини-компьютеров предлагают реляционные базы данных; такие базы данных доминируют и на рынке компьютерных систем, работающих под управлением UNIX. По мере того как отдельные персональные компьютеры уступают дорогу сетям с архитектурой клиент/сервер, SQL видоизменяет рынок баз данных для персональных компьютеров. SQL применяется даже при оперативной обработке транзакций, опровергая бытовавшее ранее мнение, что из-за низкого быстродействия реляционные базы данных никогда не смогут использоваться в приложениях для обработки транзакций.

Со временем язык SQL развивается и дополняется новыми возможностями и вместе с этим немного усложняется. Вместе с этим увеличивается число пользователей, которым необходимо облегчить работу с БД.

Благодаря прикладному программированию облегчается работа с БД. Пользователи получают удобный интерфейс управления.

Список литературы

Атре Ш. Структурный подход к организации баз данных. – М.: Финансы и статистика, 1983. – 320 с

Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. – М.: Финансы и статистика, 1989. – 351 с.

Дейт К. Руководство по реляционной СУБД DB2. - М.: Финансы и статистика, 1988. - 320 с.

Джексон Г. Проектирование реляционных баз данных для использования с микроЭВМ. -М.: Мир, 1991. – 252 с.

Кириллов В.В. Структуризованный язык запросов (SQL). – СПб.: ИТМО, 1994. – 80 с.

Кириллов В.В.: Учебное пособие. - СПб.: ИТМО, 1994. - 90 с.

Материалы сайта «Сервер информационных технологий» WEB: www.citforum.ru

Материалы сайта «SQL.ru» WEB: www.SQL.ru

Мейер М. Теория реляционных баз данных. -М.: Мир, 1987. - 608 с.

Хаббард Дж. Автоматизированное проектирование баз данных. – М.: Мир, 1984. – 294 с.

Для подготовки данной работы были использованы материалы с сайта http://ping.alfaspace.net


Поделиться с друзьями:

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.