Материал: 2110

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

TZ_OFFSET, CURRENT_TIME, EXTRACT, FROM_TZ, NUMTODSINTERVAL, NUMTOYMINTERVAL, SCN_TO_TIMESTAMP.

Функция проверки и замены в переменной значения NULL NVL(выражение 1, выражение 2)

Возвращает «выражение 2», если «выражение является значением NULL. В противном случае возвращает «выражение 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