
- •Лабораторная работа № 3
- •1. Проанализируйте блок кода и ответьте на вопросы:
- •4. В этом задании вы будете работать с переменными подстановки, запрашивая их
- •Лабораторная работа № 4
- •3. С помощью инструкции update измените значение location_id, для вновь
- •4. Откройте скрипт lab_03_05b.Sql.
- •Лабораторная работа № 5
- •Лабораторная работа № 6
- •1. Напишите скрипт для распечатки информации о выбранной стране:
- •2. Напишите блок кода для выборки имени u1076 департамента из специальной структуры
- •3. Измените скрипт из второго пункта, таким образом, чтобы в индексированной таблице хранились записи (record), содержащие всю информацию об отделах.
- •Лабораторная работа № 7.
- •Лабораторная работа № 8.
- •1. Основная задача этого упражнения – продемонстрировать использование
- •3. Загрузите скрипт lab_07_04_soln.Sql.
3. С помощью инструкции update измените значение location_id, для вновь
добавленного отдела на 3000. Продолжите работу с предыдущим скриптом.
a. В исполняемой секции блока выполните инструкцию UPDATE.
b. Выведите новое состояние записи с помощью инструкции SELECT.
c. После проверки удалите добавленную строку.
d. Сохраните скрипт под именем lab_04_03_soln.sql.
VARIABLE dept_id NUMBER; DECLARE max_deptno NUMBER(10); V_location_id NUMBER(5); dept_name departments.department_name%type:='Education'; BEGIN SELECT MAX(department_id) INTO max_deptno FROM departments; UPDATE departments SET location_id = 3000 WHERE department_id = max_deptno; SELECT location_id INTO V_location_id FROM departments WHERE department_id = max_deptno; DBMS_OUTPUT.ENABLE(); DBMS_OUTPUT.PUT_LINE('New location_id value ' || v_location_id); DELETE departments WHERE department_id = max_deptno; DBMS_OUTPUT.PUT_LINE(SQL%rowcount); END; / |
4. Откройте скрипт lab_03_05b.Sql.
a. Согласно комментариям включите в скрипт исполняемую секцию для
внешнего блока.
b. Добавьте в исполняемую секцию инструкцию SELECT..INTO для
получения номера u1089 сотрудника (employee_id) работающего в отделе “Human
Resources».
c. Сохраните скрипт под именем lab_04_04_soln.sql.
SET SERVEROUTPUT ON SET VERIFY OFF ACCEPT emp_id PROMPT 'Please enter your employee number'; ACCEPT emp_deptid PROMPT 'Please enter the department number for which salary revision is being done';
DECLARE emp_authorization NUMBER(5); emp_id NUMBER(5):=&emp_id; emp_deptid NUMBER(6):=&emp_deptid; no_such_employee EXCEPTION; v_employee_id employee_details.employee_id%type;
-- INCLUDE EXECUTABLE SECTION OF OUTER BLOCK HERE BEGIN -- RAISE EXCEPTION HERE
-- INCLUDE SIMPLE IF STATEMENT HERE IF TRUE THEN SELECT employee_id INTO v_employee_id FROM employee_details WHERE department_id IN (SELECT department_id FROM departments WHERE department_name = 'Human Resources'); DECLARE emp_sal employee_details.salary%TYPE; emp_fname employee_details.first_name%TYPE; emp_lname employee_details.last_name%TYPE; i NUMBER:=1;
-- DECLARE AN INDEX BY TABLE OF TYPE VARCHAR2(50). CALL -- IT ename_table_type
-- DECLARE A VARIABLE ename_table OF TYPE ename_table_type
c_hike1 constant real :=.20; c_hike2 constant real :=.15; c_hike3 constant real :=.08; c_hike4 constant real :=.03;
c_range1 constant number :=6500; c_range2 constant number :=9500; c_range3 constant number :=12000; BEGIN NULL; END; -- DECLARE A CURSOR CALLED emp_records TO HOLD salary, -- first_name, and last_name of employees
-- INCLUDE EXECUTABLE SECTION OF INNER BLOCK HERE
-- CLOSE THE INNER BLOCK
ELSE DBMS_OUTPUT.PUT_LINE ('SORRY YOU ARE NOT AUTHORIZED TO USE THIS APPLICATION'); END IF;
-- INCLUDE EXCEPTION SECTION FOR OUTER BLOCK EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Exception occured'); -- CLOSE THE OUTER BLOCK END; |