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

a.  Объявите две переменные типа TABLEPL/SQL (ENAME_TABLE и SAL_TABLE) для временною хранения фамилий и окладов.

b.  По мере выборки каждой фамилии и оклада из таблицы ЕМР сохраняйте эти значения в переменных тина TABLEPL/SQL.

c.  Выполните вставку значений из переменных типа TABLE в таблицу TOP_DOGS.

d.  Очистите таблицу TOP_DOGS и проверьте результаты практического занятия.

Please enter the employee number:  7934

PL/SQL procedure successfully completed.

NAME

SALARY

MILLER

1300

Please enter the employee number:  7876

PL/SQL procedure successfully completed.

NAME

SALARY

ADAMS

1100

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

На этом занятии вы используете свои знания о курсорах для обработки нескольких строк одной таблицы и заполнения другой таблицы результатами выборки с помощью цикла FOR с курсором.

1.   Создайте блок PL/SQL, определяющий служащих с самыми высокими окладами.

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

b.  В цикле выберите из таблицы ЕМР фамилии и оклады nсамыхвысокооплачиваемых служащих.

c.  Сохраните фамилии и оклады в таблице TOP_DOGS.

d.  Исходите из того, что двое служащих не могут иметь одинаковые оклады.

e.  Проверьте некоторые особые случаи - в частности, когда n = 0 или превышаетколичество служащих в таблице ЕМР. Очищайте таблицу TOP_DOGS послекаждой проверки.

Please enter the number of top money makers:  5

NAME

SALARY

KING

5000

FORD

3000

SCOTT

3000

JONES

2975

BLAKE

2850


2.   Рассмотрите случай, когда двое служащих могут иметь одинаковые оклады. Если всписок попадает один человек, должны быть перечислены и все остальные служащие стаким же окладом.

a.  Если, например, пользователь вводит для n значение 2, в выходной списокдолжны попасть служащие Кинг, Форд и Скотт. (Эти служащие имеют второй повеличине оклад.)

b.  Если пользователь вводит значение 3, в выходной список попадают служащиеКинг, Форд, Скотт и Джоунз.

c.  Удалите все строки из таблицы TOP_DOGS и проверьте результатыупражнений.

Please enter the number of top money makers:  2

NAME

SALARY

KING

5000

FORD

3000

SCOTT

3000

Please enter the number of top money makers:  3

NAME

SALARY

KING

5000

FORD

3000

SCOTT

3000

JONES

2975

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

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

1.   Напишите запрос для выборки всех отделов и служащих каждого отдела. Поместите результаты в таблицу MESSAGES. Используйте курсор для выборки номера отдела и передайте номер отдела в курсор для выборки служащих этого отдела.

RESULTS

KING - Department 10

CLARK - Department 10

MILLER - Department 10

JONES - Department 20

FORD - Department 20

SMITH - Department 20

SCOTT - Department 20

ADAMS - Department 20

BLAKE - Department 30

MARTIN - Department 30

ALLEN - Department 30

TURNER- - Department 30

JAMES - Department 30

WARD - Department 30

14 rows selected.

2.   Измените файл p18q5.sqlтак, чтобы при обработке курсора использовались функциональные возможности предложений FORUPDATE и WHERE CURRENTOF.

EMPNO

SAL

STARS

8000

7900

950

**********

7844

1500

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