Plsql SQL过程问题
我目前有两个表要处理(如下所列)。下面是我当前程序的代码,它接受employeeID值并输出其信息。此外,我需要对其进行修改,以列出谁是部门主席,如果该员工已经是部门负责人,则将其列为“部门主席” 我尝试创建一个单独的视图来告诉谁是系主任,并循环调用,但没有成功。我被困在这里了Plsql SQL过程问题,plsql,oracle18c,Plsql,Oracle18c,我目前有两个表要处理(如下所列)。下面是我当前程序的代码,它接受employeeID值并输出其信息。此外,我需要对其进行修改,以列出谁是部门主席,如果该员工已经是部门负责人,则将其列为“部门主席” 我尝试创建一个单独的视图来告诉谁是系主任,并循环调用,但没有成功。我被困在这里了 create or replace procedure emp_records ( p_emp_id employees.employeeid%type ) is l_department_name
create or replace procedure emp_records (
p_emp_id employees.employeeid%type
) is
l_department_name departments.departmentname%type;
l_department_id departments.departmentid%type;
l_employee_first_name employees.firstname%type;
l_employee_last_name employees.lastname%type;
l_employee_employee_id employees.employeeid%type;
l_chair_id departments.departmentchair%type;
l_chair_name varchar2(100);
begin
-- For employee details
select
departmentname,
firstname,
lastname,
employeeid,
departmentid
into
l_department_name,
l_employee_first_name,
l_employee_last_name,
l_employee_employee_id,
l_department_id
from departments d
join employees e
on e.departmentid = d.departmentidusing
where employeeid = p_emp_id;
--For CHair details
select departmentchair
into l_chair_id
from department
where departmentid = l_department_id;
if l_chair_id = l_employee_employee_id
then
select 'Is the department chair' into l_chair_name from dual;
else
select 'Department Chair: ' || firstname || ' ' || lastname
into l_chair_name
from employees
where employeeid = l_chair_id;
end if;
-- For output
dbms_output.put_line('Information for Employee #' || p_emp_id);
dbms_output.put_line('Full Name: ' || l_employee_first_name || ' ' || l_employee_last_name);
dbms_output.put_line('Department: ' || l_department_name);
dbms_output.put_line(l_chair_name);
exception
when no_data_found then
dbms_output.put_line('No records found for this Employee.');
end;
/
希望这会有所帮助。为了提供解决方案,我将复制您的代码并修复它。在发布之前,我需要测试我为您提供的任何解决方案。为了测试它,我需要样本数据。请向我解释如何使用示例数据创建和填充示例数据库表,这些数据来自您上传的图像,而无需自己编写SQL。如果你不知道,我建议你读一读