Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / SQL и PL/SQL в Oracle10g
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

Лабораторная работа 13.1 Использование пакета DBMS_OUTPUT

Пакет DBMS_OUTPUT для вывода информации в Oracle PL/SQL, метод PUT_LINE()

Задание:

Измените код PL/SQL, созданный в лабораторной работе 12.1, таким образом, чтобы он:

  • выводил информацию о тексте полном тексте команды INSERT, который формируется при помощи переменных (кроме номера последовательности - вместо нее используйте просто строковое значение 'Номер сотрудника');
  • выводил информацию о всех столбцах для вставленной записи.

Используйте для выполнения этого кода SQL*Plus.

Исходный код выглядит так:

DECLARE

sFirstName varchar2(20) := '&Имя_сотрудника';

sLastName varchar2(25) := '&Фамилия_сотрудника';

sEmail  varchar2(25) := '&Адрес_электронной_почты';

sPhoneNumber varchar2(20) := '&Номер_телефона';

sJobId varchar2(10) := '&Должность_сотрудника';

BEGIN

insert into hr.employees values(employees_seq.nextval, sFirstName, sLastName, sEmail,  sPhoneNumber, sysdate, sJobId, (SELECT MIN(SALARY) from hr.employees where job_id=sJobId), null,null, null);

commit;

END;

Результат выполнения итогового кода в SQL*Plus должен выглядеть так, как представлено на рис. Лаб. 13.1-1 (результат показан частично):

Рис. Лаб.13.1-1

Сохраните полученный код.

Решение:

Итоговый код PL/SQL может выглядеть так:

DECLARE

sFirstName employees.first_name%TYPE;

sLastName employees.Last_Name%TYPE;

sEmail  employees.email%TYPE;

sPhoneNumber employees.phone_number%TYPE;

sJobId employees.job_id%TYPE;

BEGIN

sFirstName := '&Имя_сотрудника';

sLastName := '&Фамилия_сотрудника';

sEmail := '&Адрес_электронной_почты';

sPhoneNumber := '&Номер_телефона';

sJobId := '&Должность_сотрудника';

DBMS_OUTPUT.PUT_LINE('insert into hr.employees values(' || 'Номер сотрудника'  || ', ' || sFirstName || ', ' || sLastName || ', ' || sEmail || ', ' || sPhoneNumber || ', ' ||  sysdate || ', ' || sJobId || ', ' || '(SELECT MIN(SALARY) from hr.employees where job_id=' || sJobId || '), null,null, null);');

insert into hr.employees values(employees_seq.nextval, sFirstName, sLastName, sEmail,  sPhoneNumber, sysdate, sJobId, (SELECT MIN(SALARY) from hr.employees where job_id=sJobId), null,null, null);

commit;

FOR item IN (SELECT * FROM hr.employees WHERE employees.first_name = sFirstName and employees.Last_name =sLastName )

LOOP

DBMS_OUTPUT.PUT_LINE(item.first_name || ' ' || item.last_name || ' ' || item.Email || ' ' || item.Phone_number || ' ' || item.hire_date || ' ' || item.job_id || ' ' || item.salary );

END LOOP;

END;

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 
© 2004-2016, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru