кодесурса
«PL / SQL

Упражнения для курсоров PL / SQL: Показать использование CURVAL и NEXTVAL с именем последовательности

script1adsense2code
script1adsense3code

Курсор 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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code