Задания на практические занятия № 1-21 по курсу "Разработка приложений на базе Oracle", страница 18

a.  Вставьте числа от 1 до 10, исключая 6 и 8.

b.  Зафиксируйте изменения прежде, чем закончить блок.

c.  Сделайте запрос к таблице MESSAGES, чтобы убедиться в том,что записи успешно вставлены.

RESULTS

1

2

3

4

5

7

9

10

2.   Создайте блок PL/SQL, вычисляющий сумму комиссионных для данногослужащего в зависимости от его оклада.

a.  Выполните скрипт-файл lab18_2.sqlдля включения новогослужащего в таблицу ЕМР.Примечание: оклад нового служащего не определен (NULL).

b.  Введите номер служащего с помощью переменной подстановки SQL*Plus.

c.  Если оклад служащего менее $1,000, сумма комиссионных должнасоставить 10% от оклада.

d.  Если оклад служащего находится в диапазоне от $1,000 до $1,500,сумма комиссионных должна составить 15% от оклада.

e.  Если оклад служащего превышает $1,500, сумма комиссионных должнасоставить 20% от оклада.

f.  Если оклад служащего не определен (NULL), сумма комиссионных дляэтого служащего должна быть равна нулю.

g.  Зафиксируйте транзакцию.

h.  Для проверки своего блока PL/SQL используйте следующую таблицу сданными.

Номер служащего

Оклад

Сумма комиссионных

7369

800

80

7934

1300

195

7499

1600

320

8000

NULL

NULL

EMPNO

ENAME

SAL

СОММ

8000

DOE

0

7499

ALLEN

1600

320

7934

MILLER

1300

195

7369

SMITH

800

80

3.   Измените скрипт-файл p15q4.sqlтак, чтобы вставлять в таблицу MESSAGES текст "Numberisodd” ("Нечетное число") или "Numberis even” (“Четное число”) в зависимости от того, нечетное число или четное. Создайте запрос к таблице MESSAGES, чтобы проверить, работает ливаш код.

RESULTS

Number is even

4.   Добавьте в таблицу ЕМР столбец STARS для хранения звездочек (*).

5.   Создайте блок PL/SQL, который добавляет по звездочке в столбец STARS за каждые $100 оклада служащего. Округлите оклад до ближайшегоцелого числа. Сохраните свой блок PL/SQL в файлеp18q5.sql

a.  Получите от пользователя идентификатор служащего черезпеременную подстановки SQL*Plus.

b.  Создайте переменную для хранения строки звездочек: инициализируйтеее с начальным значением NULL.

c.  Добавьте в эту строку по одной звездочке на каждые $100 оклада.Если, например, оклад служащего составляет $800, строка должнавключать 8 звездочек.

d.  Вставьте строку звездочек в столбец STARS для служащего.

e.  Зафиксируйте изменение.

f.  Проверьте работу блока в случае, если служащий не имеетоклада и если служащий имеет оклад.

Please enter the employee number:  7934

PL/SQL procedure successfully completed.

Please enter the employee number:  8000

PL/SQL procedure successfully completed.

EMPNO

SAL

STARS

8000

7934

1300

*************

Практическое занятие 19

На этом практическом занятии вы будете определять, создавать и использовать таблицы PL/SQL.

1.   Выполните скрипт-файл lab19_1.sql для создания таблицы, где будет храниться информация о служащих и их окладах.

SQL>

GREATE TABLE

top_dogs

2

(name

VARCHAR2(25),

3

salary

NUMBER(11, 2));

2.   Создайте блок PL/SQL для выборки фамилии и оклада служащего из таблицы ЕМР по номеру служащего. Используйте для этого составной тип TABLEPL/SQL.