Упражнения для курсоров PL / SQL: Показать использование CURVAL и NEXTVAL с именем последовательности
Курсор PL / SQL: упражнение 2 с решением
Напишите программу на PL / SQL, чтобы показать использование CURVAL и NEXTVAL с именем последовательности.
Вы можете создать начальный порядковый номер, используя следующие команды sql.
Пример решения:
Код PL / SQL:
SQL> CREATE SEQUENCE emp_seq INCREMENT BY 1;
/* Because NEXTVAL values might be referenced
by different users and applications,
and some NEXTVAL values might not be stored in database,
there might be gaps in sequence. */
DROP TABLE emp_temp;
CREATE TABLE emp_temp AS
SELECT employee_id, first_name, last_name
FROM employees;
DROP TABLE emp_temp1;
CREATE TABLE emp_temp1 AS
SELECT employee_id, first_name, last_name
FROM employees;
DECLARE
seq_value NUMBER;
BEGIN
seq_value := emp_seq.NEXTVAL;
DBMS_OUTPUT.PUT_LINE (
'Initial sequence value: ' || TO_CHAR(seq_value)
);
-- NEXTVAL have been used to create unique number when inserting data:
INSERT INTO emp_temp (employee_id, first_name, last_name)
VALUES (emp_seq.NEXTVAL, 'Alen', 'George');
-- CURRVAL have been used to store same value somewhere else:
INSERT INTO emp_temp1 VALUES (emp_seq.CURRVAL,
'Tim', 'May');
-- CURRVAL have been used to specify record to delete:
seq_value := emp_seq.CURRVAL;
DELETE FROM emp_temp
WHERE employee_id = seq_value;
-- The employee_id will be updated with NEXTVAL for specified record:
UPDATE emp_temp
SET employee_id = emp_seq.NEXTVAL
WHERE first_name ='Alen'
AND last_name ='George';
seq_value := emp_seq.CURRVAL;
DBMS_OUTPUT.PUT_LINE (
'Ending sequence value: ' || TO_CHAR(seq_value)
);
END;
/
Пример вывода:
SQL> / Начальное значение последовательности: 23 Значение конечной последовательности: 24 Процедура PL / SQL успешно завершена.
Блок - схема:
Улучшите этот пример решения и опубликуйте свой код через Disqus
Предыдущий: Напишите программу на PL / SQL, чтобы показать использование статического оператора PL / SQL.
Далее: Напишите программу на PL / SQL, чтобы найти количество строк, на которое влияет использование атрибутов SQL% ROWCOUNT неявного курсора.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code