Excel
<<  Логические функции в Excel Построение графиков функций с использованием MS Excel  >>
Картинок нет
Картинки из презентации «Встроенный динамический SQL» к уроку информатики на тему «Excel»

Автор: MIKE. Чтобы познакомиться с картинкой полного размера, нажмите на её эскиз. Чтобы можно было использовать все картинки для урока информатики, скачайте бесплатно презентацию «Встроенный динамический SQL.ppt» со всеми картинками в zip-архиве размером 86 КБ.

Встроенный динамический SQL

содержание презентации «Встроенный динамический SQL.ppt»
Сл Текст Сл Текст
1Встроенный динамический SQL. 101..1000 LOOP v_Numbers(v_Count) :=
2Динамический SQL. PL/SQL использует v_Count; v_Strings(v_count) := 'Element #'
раннее связывание для выполнения || v_Count; END LOOP;
операторов SQL. Следствием этого является 11Массовые соединения. Пример
то, что только операторы DML могут (продолжение). -- Внесем в базу данных все
непосредственно включаться в блоки PL/SQL. 1000 элементов с помощью оператора FORALL.
Однако можно решить эту проблему с помощью FORALL v_Count IN 1..1000 INSERT INTO
динамического SQL. Динамический SQL temp_table VALUES (v_Numbers(v_Count),
разбирается и исполняется во время v_Strings(v_Count)); - Теперь должно быть
выполнения, а не синтаксического разбора 1000 строк. PrintTotalRows('After first
блока PL/SQL. insert'); -- Снова внесем в базу данных
3Динамический SQL. Существуют два элементы с 501 по 1000. FORALL v_Count IN
способа выполнения динамического SQL в 501..1000 INSERT INTO temp_table VALUES
PL/SQL. Первый применяет модуль DBMS_SQL. (v_Numbers(v_count), v_Strings(v_Count));
Второй способ был введен в Oracle8i и -- Теперь у нас должно быть 1500 строк.
предлагает использование встроенного PrintTotalRows('After second insert'); --
динамического SQL. Встроенный динамический Обновим все строки. FORALL v_Count IN
SQL является составной частью самого 1..1000 UPDATE temp_table SET char_col =
языка. Вследствие этого он значительно 'Changed!' WHERE num_col =
проще в применении и быстрее, чем модуль v_Numbers(v_Count); - Несмотря на то, что
DBMS_SQL. имеется только 1000 элементов, этот
4EXECUTE IMMEDIATE. Базовым оператором, оператор - обновляет 1500 строк, так как
используемым в не содержащих запросов предложение WHERE соответствует - 2
операторах (DML и DDL) и блоках PL/SQL, строкам для каждой из последних 500 строк.
является оператор EXECUTE IMMEDIATE. DBMS_OUTPUT.PUT_LINE( 'Update processed '
Выполняемая строка может задаваться как || SQL%ROWCOUNT || 'rows.');
литерал, заключенный в одиночные кавычки 12Массовые соединения. Пример
или как переменная типа символьной строки (продолжение). -- Аналогично, этот DELETE
PL/SQL. Завершающая точка с запятой не удалит 300 строк. FORALL V_Count IN
нужна для операторов DML и DDL, но 401..600 DELETE FROM tempjtable WHERE
указывается для анонимных блоков. nun_col = v_Numbers(v_Count); -- Поэтому
5EXECUTE IMMEDIATE. Пример. В этом должно остаться 1200 строк.
примере показаны различные способы PrintTotalRows('After delete'); END;
использования EXECUTE IMMEDIATE: для Результатом выполнения примера будет
выполнения DDL, DML и анонимных блоков следующее: After first insert: Count is
PL/SQL. BEGIN EXECUTE IMMEDIATE 'CREATE 1000 After second insert: Count is 1500
TABLE execute_table (call VARCHAR2(10))'; Update processed 1500 rows. After delete:
FOR v_Counter IN 1..10 LOOP v_SQLString := Count is 1200. FORALL синтаксически
'INSERT INTO execute_table VALUES аналогичен циклу FOR. Он может
("Row' || v_Counter || '")'; использоваться для сборных конструкций
EXECUTE IMMEDIATE v_SQLString; END LOOP; любого типа и для операторов INSERT,
v_PLSQLBlock := 'BEGIN FOR v_Rec IN DELETE и UPDATE. Определяемый в FORALL
(SELECT * FROM execute_table) LOOP диапазон должен быть непрерывным, и все
DBMS_OUTPUT.PUT_LINE(v_Rec.call); END элементы в этом диапазоне должны
LOOP; END;'; EXECUTE IMMEDIATE существовать.
v_PLSQLBlock; EXECUTE IMMEDIATE 'DROP 13Особенности использования транзакций.
TABLE execute_table '; END; Если в массовой операции DML при обработке
6EXECUTE IMMEDIATE. EXECUTE IMMEDIATE одной из строк возникает ошибка, то
используется также для выполнения откатывается только эта строка. Предыдущие
операторов со связанными переменными. В строки будут обработаны. В Oracle9i можно
этом случае выполняемая строка содержит указать в операторе FORALL новую
специальные позиции, помеченные конструкцию SAVE EXCEPTIONS. При этом
двоеточием. Позиции предназначены для любая ошибка, возникшая во время пакетной
размещения переменных PL/SQL, которые обработки, будет сохранена, а обработка
указываются в предложении USING оператора будет продолжена. Для просмотра исключений
EXECUTE IMMEDIATE, можно использовать новый атрибут
7EXECUTE IMMEDIATE. Пример 2.. BEGIN - SQL%BULK_EXCEPTIONS, который действует как
Вставим ECN 103 в таблицу classes, таблица PL/SQL.
используя строку символов - для оператора 14DBMS_SQL используется для выполнения
SQL. v_SQLString := 'INSERT INTO CLASSES динамического SQL в PL/SQL. Он не встроен
(department, course, description, непосредственно в язык и поэтому менее
max_students, current_students, эффективен, чем встроенный динамический
num_credits) VALU€S(:dep, :course, :descr, SQL (который доступен в Огас1е8г и выше).
:max_s, :cur_s, :num_c)'; EXECUTE Модуль DBMS_SQL позволяет непосредственно
IMMEDIATE v_SQLString USING 'ECN', 103, управлять обработкой операторов в курсоре,
'Economics 103', 10, 0, 3; - выполнять синтаксический разбор оператора,
Зарегистрируем всех выбравших Economics в связывать входные переменные и определять
новой группе. FOR v_StudentRec IN выходные переменные. DBMS_SQL.
c_EconMajor LOOP - Здесь мы имеем 15DBMS_SQL. Пример. CREATE OR REPLACE
литеральный оператор SQL, а переменные PROCEDURE UpdateClasses( /* Использует
PL/SOL - находятся в предложении USING. DBMS_SQL для обновления таблицы учебных
ECECUTE IMMEDIATE 'INSERT INTO групп, задания числа зачетов для всех
registered_students (student_ID, групп на указанном факультете. */
department, course, grade) VALUES (:id, p_Department IN classes.department%TYPE,
:dep, :course, NULL)' USING p_NewCredits IN classes. num_credits%TYPE,
v_Studentflec.ID, 'ENC', 103; END; p_RowsUpdated OUT INTEGER) AS v_CursorID
8OPEN FOR. Запросы выполняются с INTEGER; v_UpdateStmt VARCHAR2(100); BEGIN
помощью оператора OPEN FOR аналогично - Откроем курсор для обработки. v_CursorID
курсорным переменным. Различие состоит в := DBMS_SQL.OPEN_CURSOR; - Определим
том, что строка, содержащая запрос, может строку SQL. v_UpdateStmt := 'UPDATE
быть переменной PL/SQL, а не литералом. К classes SET num_credits = :nc WHERE
получаемой курсорной переменной можно department = :dept';
обращаться так же, как и к любой другой 16DBMS_SQL. Пример. (продолжение). --
переменной. Для связывания используется Выполним синтаксический разбор оператора.
предложение USING, так же как в операторе DBMS_SQL.PARSE(v_CursorID, v_UpdateStrat,
EXECUTE IMMEDIATE. BEGIN v_SQLStatement := DBMS_SQL.NATIVE); -- Свяжем p_NewCredits с
'SELECT * FROM students ' || позицией :nс. Эта перегруженная версия --
p_WhereClause; OPEN v_ReturnCursor FOR BIND_VARIABLE привяжет p_NewCredits как
v_SQLStatement; v_SQLStatement := 'SELECT NUMBER, -- поскольку он так объявлен.
* FROM students WHERE major = :m'; OPEN DBMS_SQL.BIND_VARIABLE(v_CursorID, ':nc',
v_ReturnCursor FOR v_SQLStatement USING p_NewCredits); -- Свяжем p_Department с
p_Major; END; позицией :dept. Эта перегруженная версия
9Массовые соединения. Операторы SQL в -- BIND_VARIABLE привяжет p_Department как
блоках PL/SQL пересылаются системе CHAR, поскольку он -- так объявлен.
поддержки SQL, которая в свою очередь DBMS_SQL.BIND_VARIABLE_CHAR(v_CursorID,
может передавать данные назад системе ':dept ', p_Department); -- Выполним
поддержки PL/SQL (как результат запроса). оператор p_RowsUpdated :=
Во многих случаях данные, которые вносятся DBMS_SQL.EXECUTE(v_CursorID); -- Закроем
или обновляются в базе данных, помещаются курсор DBMS_SQL.CLOSE_CURSOR(v_CursorID);
сначала в сборную конструкцию PL/SQL, и EXCEPTION WHEN OTHERS THEN -- Закроем
затем эта сборная конструкция курсор и снова инициируем ошибку.
просматривается с помощью цикла FOR для DBMS_SQL.CLOSE_CURSOR(v_CursorID); RAISE;
отправки информации системе поддержки SQL. END UpdateClasses;
Это приводит к переключению контекста 17Задания. 1. Напишите процедуру,
между PL/SQL и SQL для каждой строки в возвращающую список товаров, количество
сборной конструкции. Oracle8i и выше каждого товара и его цену. Процедура
позволяет передавать все строки сборной должна иметь два входных параметра -
конструкции системе поддержки SQL с название фирмы и название товара. Если
помощью одной операции, оставляя только указано название фирмы, выдаётся список
одно переключение контекста. Это всех купленных ею товаров. Если указано
называется массовым соединением, оно название фирмы и дополнительно указано
выполняется с помощью оператора FORALL. наименование товара, то выдаётся товар,
10Массовые соединения. Пример. DECLARE купленный фирмой, наименование которого
TYPE t_Numbers IS TABLE OF совпадает с заданным наименованием. Если
temp_table.num_col%TYPE; TYPE t_Strings IS указано только наименование товара, то
TABLE OF temp_table.char_col%TYPE; выдаётся указанный товар. Процедуру
v_Numbers t_Numbers := t_Numbers(1); написать с использованием позиций
v_Strings t_Strings := t_Strings(1); - предназначенных для размещения переменных
Печатаем общее число строк таблицы PL/SQL, указываемых в предложении USING
temp_table. PROCEDURE PrintTotalRows оператора EXECUTE IMMEDIATE. 2. Выполните
(p_Message IN VARCHAR2) IS v_Count NUMBER: первое задание используя DBMS_SQL.
BEGIN SELECT COUNT(*) INTO v_Count FROM 18Задания. 3. Модифицируйте задание 1
temp_table; DBMS_OUTPUT.PUT_LINE(p_Message так,чтобы в том случае, если выдаётся один
|| ': Count is ' || v_Count); END товар, то он бы записывался 200 раз в
PrintTotalRows; BEGIN DELETE FROM таблицу test_item. Таблица test_item
temp_table; -- Заполняем вложенные таблицы содержит два поля: name – наименование
PL/SQL, используя 1000 значений. товара; num – порядковый номер в блоке
v_Numbers.EXTEND(1000); (т.е. оно от 1 до 200) Процедуру написать
v_Strings.EXTEND(1000); FOR v_Count IN с использованием FORALL.
Встроенный динамический SQL.ppt
http://900igr.net/kartinka/informatika/vstroennyj-dinamicheskij-sql-160665.html
cсылка на страницу

Встроенный динамический SQL

другие презентации на тему «Встроенный динамический SQL»

«Встроенные функции в Excel» - 6. В ячейке В5 записана дата 26.02.2008. 1. С помощью, какой команды можно вставить в ЭТ встроенную функцию? Чему равен результат применения функции ДЕНЬ(В5). В ячейке В5 записана дата 26.02.2008. Какое число будет в ячейке В4? Вопросы: Дан фрагмент электронной таблицы : С помощью, какой команды можно вставить в ЭТ встроенную функцию?

«Excel 2007» - Summarizing Data Conditionally. Using the Conditional Formatting Rules Manager. Objectives. Working with Logical Functions. Using Database Functions to Summarize Data. Using Lookup Tables and Functions. Using Advanced Filtering. New Perspectives on Microsoft Office Excel 2007. Excel Tutorial 7 Using Advanced Functions, Conditional Formatting, and Filtering.

«Логические функции Excel» - Генерирует случайные числа. Пояснение Exel. Вложенные функции. Значение может быть ссылкой. Остаток от деления. Логические функции Excel. Значение в ячейке. Множитель. Истина и ложь. Тангенс угла. Значение константы. Округляет число вниз. Значение. Косинус угла. Логарифм. Степень. Количество возможных комбинаций.

«Таблицы MS Excel» - Выделить ячейку, в которой нужно произвести расчеты. Ячейка. Свойства ячеек. Полосы прокрутки. Строка заголовков столбцов. Маркер автозаполнения. Строка. Фон Цвет символов Вид рамки. Ввод формул. Столбец заголовков строк. Строка формул. Поле адреса. Панель инструментов «Стандартная». Число Текст Формула Логическое значение.

«Построение графиков функций в Excel» - Цели урока. Задать формулой функции. Какие способы решения показательных уравнений вам известны? Решение показательных уравнений и неравенств. Критерий оценивания. Для решения графическим способом использовать средства MS Excel. Какая из данных функций является показательной, логарифмической? Средствами MS Excel построить графики функций.

«Работа в Excel» - Новые свойства Excel. Режим просмотра. Улучшение Excel. Ввод формулы. Вставьте столбец. Форматирование. Столбец. Шрифт. Начало работы в Excel. Ячейки. Книги предыдущих версий. Формат файлов. Старые файлы. Книга Excel. Команды. Поместите команды на собственную панель инструментов. Быстрое освоение программы.

Excel

26 презентаций об Excel
Урок

Информатика

130 тем
Картинки
900igr.net > Презентации по информатике > Excel > Встроенный динамический SQL