PL/SQL Cursor Exercises: Display the first name, job title and start date of employees
PL/SQL Cursor: Exercise-42 with Solution
Write a block in PL/SQL to display the first name, job title and start date of employees.
Sample Solution:
Table: employees
employee_id integer first_name varchar(25) last_name varchar(25) email archar(25) phone_number varchar(15) hire_date date job_id varchar(25) salary integer commission_pct decimal(5,2) manager_id integer department_id integerTable: jobs
job_id varchar(25) job_title varchar(50) min_salary integer max_salary integer
PL/SQL Code:
declare
cursor employees_cur is
select employee_id, first_name, last_name, job_title , hire_date
from employees natural join jobs;
emp_st_date date;
begin
dbms_output.put_line( rpad('Employee Name',30) || rpad('Job Title',35)|| 'Starting Date');
dbms_output.put_line('-----------------------------------------------------------------------------------------');
for employee_rec in employees_cur
loop
-- find out most recent end_date in job_history
select max(end_date) + 1 into emp_st_date
from job_history
where employee_id = employee_rec.employee_id;
if emp_st_date is null then
emp_st_date := employee_rec.hire_date;
end if;
dbms_output.put_line(rpad((employee_rec.first_name||' '||employee_rec.first_name),30) || rpad(employee_rec.job_title,35)
|| to_char(emp_st_date,'dd-mon-yyyy'));
end loop;
end;
Sample Output:
SQL> / Employee Name Job Title Starting Date ------------------------------------------------------------------------------- William William Public Accountant 07-jun-2002 Shelley Shelley Accounting Manager 07-jun-2002 Jennifer Jennifer Administration Assistant 01-jan-2007 Steven Steven President 17-jun-2003 Lex Lex Administration Vice President 25-jul-2006 Neena Neena Administration Vice President 16-mar-2005 John John Accountant 28-sep-2005 Daniel Daniel Accountant 16-aug-2002 Luis Luis Accountant 07-dec-2007 Ismael Ismael Accountant 30-sep-2005 Jose Manuel Jose Manuel Accountant 07-mar-2006 Nancy Nancy Finance Manager 17-aug-2002 Susan Susan Human Resources Representative 07-jun-2002 ...
Flowchart:
Improve this sample solution and post your code through Disqus
Previous: Write a PL/SQL block to display the last name, first name and overpaid amount by adding formal parameters and specify a default values for the added parameters.
Next: Write a block in PL/SQL to print the department name, head of the department, city and number of employees are wroking in that department.
What is the difficulty level of this exercise?
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://www.w3resource.com/plsql-exercises/cursor/plsql-cursor-exercise-42.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics