Результат необходимо сохранить в файле, который можно будет передать базе данных. База данных, в свою очередь, выполнит все операторы SQL из этого файла по очереди, избавляя вас от необходимости долгого печатания команд и тем самым сэкономив вам немало времени.
В следующий раз, когда вам придется при написании операторов SQL повторять однообразные операторы SQL несколько раз подряд, остановитесь и позвольте SQL сделать эту работу за вас.
Прямое использование SQL означает выполнение операторов SQL с любого интерактивного терминала. Результаты при этом возвращаются обратно на терминал, инициировавший выполнение операторов. В данной книге до сих пор, в основном, рассматривалось прямое использование SQL. Прямое использование SQL называют также
Вот пример вложения оператора SQL в вызывающую программу, созданную средствами ANSI С
{операторы вызывающей программы}
ЕХЕС SQL {оператор SQL};
{другие операторы вызывающей программы}
В ходе этого урока обсуждались некоторые средства SQL, выходящие за рамки элементарных. Хотя мы и не вдавались в детали, вы должны были получить общее представление о том, как используются обсуждавшиеся здесь возможности. Сначала были рассмотрены курсоры, с помощью которых можно сохранять результаты запросов в памяти. Чтобы объявившая курсор программа могла его использовать, эта программа должна открыть его. После этого содержимое курсора можно передать соответствующей переменной, чтобы программа смогла в нужный момент эти данные использовать. Данные курсора сохраняются в памяти до тех пор, пока курсор не будет закрыт, а занятая им память освобождена.
Затем были рассмотрены сохраняемые процедуры и триггеры. Сохраняемые процедуры состоят, в основном, из групп операторов SQL, хранящихся вместе в базе данных. Такие операторы вместе с другими необходимыми командами компилируются базой данных и сохраняются в виде, готовом для немедленного выполнения в любое время по требованию пользователя базы данных. Триггер тоже представляет собой сохраненную процедуру, но его выполнение инициируется автоматически в ответ на определенные события, происходящие в базе данных. Использование сохраненных процедур оказывается, как правило, более выгодным с точки зрения производительности системы, чем непосредственное использование отдельных операторов SQL.
Кроме того, были рассмотрены динамический SQL, генерирование операторов SQL средствами SQL и различия между прямым вызовом SQL и использованием вложенного SQL. Динамический SQL, в отличие от статического, позволяет динамическое создание программного кода SQL непосредственно пользователем в ходе выполнения программы. Использование SQL для генерации операторов SQL может существенно экономить время, поскольку дает возможность с помощью конкатенации и выбора подходящих буквальных значений автоматизировать трудоемкие операции по созданию больших последовательностей однообразных операторов SQL. Наконец, обсуждались различия между прямым вызовом SQL и вложенным SQL. Главное из этих различий заключается в том, что прямой вызов операторов SQL осуществляется непосредственно пользователем с любого терминала, а вложенный SQL можно фактически считать частью программы, с помощью которой обрабатываются данные.
Рассмотренные в ходе этого урока средства будут использованы для иллюстрации возможностей использования SQL в рамках реальной базы данных типичного предприятия, о котором пойдет речь на следующем уроке, "Использование SQL в локальных и глобальных сетях".
Может ли сохраненная процедура вызывать другую сохраненную процедуру?
Да. Вызываемая процедура называется также вложенной процедурой.
Как заставить курсор выполняться?
Используйте для этого оператор OPEN CURSOR. В итоге результат выполнения курсора будет сохранен в специальной области памяти.