TZ_OFFSET, CURRENT_TIME, EXTRACT, FROM_TZ, NUMTODSINTERVAL, NUMTOYMINTERVAL, SCN_TO_TIMESTAMP.
Функция проверки и замены в переменной значения NULL NVL(выражение 1, выражение 2)
Возвращает «выражение 2», если «выражение 1» является значением NULL. В противном случае возвращает «выражение 1». Если «выражение 1» не является строкой символов, то возвращаемое значение имеет тот же тип данных, что и «выражение 1», иначе возвращаемое.
Варианты заданий к лабораторной работе №4
Общие сведения
Список вариантов заданий
Вариант |
|
|
|
|
Список номеров упражнений |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
6 |
11 |
16 |
21 |
26 |
31 |
36 |
41 |
46 |
51 |
56 |
61 |
2 |
2 |
7 |
12 |
17 |
22 |
27 |
32 |
37 |
42 |
47 |
52 |
57 |
62 |
3 |
3 |
8 |
13 |
18 |
23 |
28 |
33 |
38 |
43 |
48 |
53 |
58 |
63 |
4 |
4 |
9 |
14 |
19 |
24 |
29 |
34 |
39 |
44 |
49 |
54 |
59 |
64 |
5 |
5 |
10 |
15 |
20 |
25 |
30 |
35 |
40 |
45 |
50 |
55 |
60 |
65 |
6 |
6 |
11 |
16 |
21 |
26 |
31 |
36 |
41 |
46 |
51 |
56 |
61 |
1 |
7 |
7 |
12 |
17 |
22 |
27 |
32 |
37 |
42 |
47 |
52 |
57 |
62 |
2 |
8 |
8 |
13 |
18 |
23 |
28 |
33 |
38 |
43 |
48 |
53 |
58 |
63 |
3 |
9 |
9 |
14 |
19 |
24 |
29 |
34 |
39 |
44 |
49 |
54 |
59 |
64 |
4 |
10 |
10 |
15 |
20 |
25 |
30 |
35 |
40 |
45 |
50 |
55 |
60 |
65 |
5 |
11 |
2 |
6 |
12 |
16 |
22 |
26 |
32 |
36 |
42 |
46 |
52 |
56 |
62 |
12 |
1 |
5 |
11 |
15 |
21 |
25 |
31 |
35 |
41 |
45 |
51 |
55 |
61 |
13 |
3 |
7 |
13 |
17 |
23 |
27 |
33 |
37 |
43 |
47 |
53 |
57 |
63 |
14 |
4 |
8 |
14 |
18 |
24 |
28 |
34 |
38 |
44 |
48 |
54 |
58 |
64 |
15 |
5 |
9 |
15 |
19 |
25 |
29 |
35 |
39 |
45 |
49 |
55 |
59 |
65 |
16 |
6 |
13 |
26 |
33 |
36 |
43 |
46 |
53 |
56 |
63 |
1 |
11 |
17 |
17 |
7 |
18 |
27 |
28 |
37 |
38 |
47 |
48 |
57 |
58 |
2 |
4 |
10 |
18 |
8 |
9 |
18 |
19 |
28 |
29 |
38 |
39 |
48 |
49 |
58 |
59 |
60 |
19 |
9 |
14 |
29 |
24 |
39 |
34 |
49 |
44 |
59 |
54 |
61 |
65 |
3 |
20 |
10 |
12 |
20 |
22 |
30 |
32 |
40 |
42 |
50 |
52 |
60 |
62 |
8 |
Для получения более подробной информации о работе тех или иных операторов или функций можно запустить файлы «User Guide PL_SQL
55
10g.pdf» и «User Guide PL_SQL Packages Oracle 10g.pdf» из рабочей папки преподавателя, набрать искомый ключевой элемент в режиме поиска (CTRL+F). Для выполнения заданий ориентироваться на вариант и список номеров заданий, указанных выше.
В утилите SQL *Plus Worksheet создать отдельные программы по ка- ждому заданию, которые сохранять на диске с названием ФамилияСту- дента_Лаб4_Вариант_№_задания, текст задания в виде комментария по- мещать в файле перед программой для удобства проверки.
Объявление переменных:
1.Объявить переменную Perem1 для хранения информации о денеж- ной величине, а переменную Perem2 – для хранения чисел с целой частью, равной 8, и дробной частью, равной 2.
2.Объявить переменную Perem1 для хранения строк длиной 100, а переменную Perem2 – для хранения длинного целого.
3.Объявить переменную Perem1 для хранения динамических строк с максимальной длиной 1000, а переменную Perem2 – для хранения целых чисел.
4.Объявить переменную Perem1 для хранения строк длиной 30, а пе- ременную Perem2 – для хранения числа с целой частью, равной 10, и дроб- ной частью, равной 3.
5.Объявить переменную Perem1 для хранения даты, а переменную Perem2 – для хранения малого целого.
Передача результата из SELECT в переменную:
6.Подсчитать среднюю цену закупленных книг (с помощью запроса SELECT) и умножить ее на значение 123,34, которое необходимо сохра- нить в отдельной переменной, вывести значение переменной на экран.
7.Подсчитать суммарную цену всех закупок книг, результат помес- тить в переменную, вывести значение переменной на экран.
8.Подсчитать количество книг в справочнике книг, результат помес- тить в переменную, вывести значение переменной на экран.
9.Определить минимальную дату рождения автора в справочнике ав- торов, результат поместить в переменную, вывести значение переменной на экран.
10.Подсчитать количество поставщиков книг, результат поместить в переменную.
11.Подсчитать сумму закупок книг, результат поместить в перемен-
ную.
12.Подсчитать среднюю цену в таблице покупок книг, результат по- местить в переменную.
56
13. Подсчитать максимальную стоимость книг в закупке, результат поместить в переменную.
Работа с датой и временем:
14.Определить переменную Date1 типа ДАТА. Присвоить ей значение даты 31.12.2006 в формате dd.mm.yyyy.
15.Определить переменную Date1 типа ДАТА. Присвоить ей значение даты 31.12.2006 в формате mm.dd.yyyy.
16.Определить переменную Date1 типа ДАТА. Присвоить ей значение даты 31.12.2006 в формате yyyy.mm.dd.
Создание таблицы или записи через переменную типа TABLE или
RECORD или %ROWTYPE:
17.Создать локальную таблицу с названием TEMP по таблице Boooks.
Вцикле перебрать записи таблицы и вывести каждую запись из цикла на экран.
18.Создать локальную таблицу с названием TEMP по таблице Purchases. В цикле перебрать записи таблицы и вывести каждую запись из цикла на экран.
19.Создать локальную таблицу с названием TEMP по таблице Publishing_house. В цикле перебрать записи таблицы и вывести каждую за- пись из цикла на экран.
20.Создать запись с названием TEMP и полями типа дата, длинное це- лое, строка. Присвоить полям записи данные и вывести результат на экран.
21.Создать локальную таблицу с названием TEMP и полями типа дата, число с округлением до тысяч, динамическая строка. Присвоить полям за- писи данные и вывести результат на экран.
Преобразование типов переменных:
22.Объявить переменные типа FLOAT, CHAR, SMALLINT. Присво- ить значения, соответствующие типам. Выполнить преобразование пере-
менных типа FLOAT, CHAR, SMALLINT в INT, DATETIME, BOOLEAN
соответственно и вывести результат на экран.
23.Объявить переменные типа INT, DATE, BOOLEAN. Присвоить значения, соответствующие типам. Выполнить преобразование перемен-
ных типа INT, DATE, BOOLEAN в FLOAT, CHAR, SMALLINT соответст-
венно и вывести результат на экран.
24.Объявить переменные типа NUMERIC, VARCHAR2, DATE. При- своить значения, соответствующие типам. Выполнить преобразование пе-
ременных типа NUMERIC, VARCHAR2, DATE в FLOAT, CHAR, NUMERIC соответственно и вывести результат на экран.
57
25. Объявить переменные типа BOOLEAN, NVARCHAR2, DATE.
Присвоить значения, соответствующие типам. Выполнить преобразование переменных типа BOOLEAN, NVARCHAR2, DATE в FLOAT, INT, REAL
соответственно и вывести результат на экран.
Условная конструкция IF:
26.Подсчитать количество поставщиков в таблице Deliveries. Если их
втаблице от 2 до 5, то ничего не сообщать, в противном случае вывести сообщение вида "В таблице ... поставщиков" (вместо многоточия поста- вить точное количество поставщиков).
27.Подсчитать сумму закупок книг в таблице покупок. Если получен- ная сумма в диапазоне от 1000 до 5000, то ничего не сообщать, в против- ном случае вывести сообщение вида "Сумма закупок = …" (вместо много- точия поставить точную сумму).
28.Подсчитать среднюю стоимость закупки книг в таблице покупок. Если полученная стоимость в диапазоне от 1000 до 5000, то ничего не со- общать, в противном случае вывести сообщение вида "Средняя стоимость закупки = …" (вместо многоточия поставить точную среднюю стоимость).
29.Определить минимальную стоимость закупки книг в таблице поку- пок. Если полученная стоимость в диапазоне от 200 до 300, то ничего не сообщать, в противном случае вывести сообщение вида "Минимальная стоимость закупки = …" (вместо многоточия поставить точную стои- мость).
Цикл WHILE:
30.Определить количество записей в таблице Authors. Пока записей меньше 15, делать в цикле добавление записи в таблицу с автоматическим наращиванием значения ключевого поля, а вместо имени автора ставить значение 'Автор не известен'.
31.Определить количество записей в таблице издательств. Пока запи- сей меньше 20, делать в цикле добавление записи в таблицу с автоматиче- ским наращиванием значения ключевого поля, а вместо названия изда- тельства ставить значение 'не известно'.
32.Определить количество записей в таблице поставщиков. Пока за- писей меньше 17, делать в цикле добавление записи в таблицу с автомати- ческим наращиванием значения ключевого поля, а вместо названия по- ставщика ставить значение 'не известен'.
Объявление курсора:
33. Создать курсор по данным таблицы Books с полями Code_book, Ti-
tle_book.
34. Создать курсор по данным таблицы поставщиков (таблица Deliveries) с полями Name_delivery, Name_company.
58
35. Создать курсор по данным таблицы Books и Authors с полями
Code_book, Title_book, Name_author.
36. Создать курсор по данным таблицы Books и Publishing_house с по-
лями Code_book, Title_book, Publish.
Операторы для работы с курсором:
37.Создать курсор по данным таблицы Deliveries с полями
Code_delivery, Name_delivery. Вывести данные 3-й записи.
38.Поместить в курсор данные таблицы Purchases. Перебрать все за- писи таблицы Purchases. Просуммировать значения произведений полей Cost и Amount и результат сохранить в переменной Sum_table, которую после суммирования вывести на экран. Закрыть курсор.
39.Объявить курсор по данным полей Name_Author и Title_Book таб- лиц Authors и Books. Вывести данные 5-й записи курсора.
Использование функций для работы со строковыми переменными. Базовый текст дан в отдельном файле по вариантам. Для выполнения
этого блока заданий в Query Analyzer объявите переменную типа varchar и присвойте ей в качестве значения строку с базовым текстом, который бу- дет анализироваться и/или исправляться в заданиях.
40.Удалить в тексте лишние пробелы. Лишними считаются те, кото- рые идут непосредственно за пробелом. Подсчитать количество исправле- ний.
41.Подсчитать количество встреч каждой из следующих букв: "а", "в", "и", "п" в базовом тексте.
42.Подсчитать доли процентов встречи следующих букв: "е", "о", если суммарный процент встречаемости всех этих букв равен 100% или процент встречаемости е% + о% равен 100%.
43.По правилам оформления машинописных текстов перед знаками
.,!?:; пробелы не ставятся, но обязательно ставятся после этих знаков. Уда- лите лишние пробелы. Подсчитать количество исправлений.
44.По правилам оформления машинописных текстов перед знаками
.,!?:; пробелы не ставятся, но обязательно ставятся после этих знаков. Рас- ставьте недостающие пробелы. Подсчитать количество исправлений.
45.Найти из исходного текста второе предложение и вернуть его в пе- ременную Perem, а также вывести на экран весь исходный текст и найден- ное предложение.
46.Удалить из базового текста 2-е, 4-е, 6-е, 8-е слова.
47.Удалить из базового текста 3-е, 5-е, 7-е, 10-е слова.
48.Вставить в базовый текст вместо букв «а» – «АА».
49.Вставить в базовый текст вместо букв «е» и «о» – «ББ».
50.Поменять местами первое и последнее слова в базовом тексте.
59