首页 > 解决方案 > 参数不能在选择语句中使用

问题描述

我有一项任务要解决。

创建一个函数,该函数根据employee_id返回员工所在部门的名称(department_name)。

如果员工没有被分配到部门,则处理这种情况。

使用在 SQL 语句中创建的函数。列出employee_id 160 的名字和姓氏、开始日期和部门名称。

我有这个,但有一个错误:表达式“EMP_ID”不能用作 SELECT / FETCH 语句的 INTO 目标。

我究竟做错了什么?

create or replace function oddelenie(emp_id in employees.employee_id%type)
return varchar is dept_name departments.department_name%type;
begin
select employee_id, department_name into emp_id, dept_name
from employees join departments using (department_id);
return dept_name;
        exception when no_data_found then
            dbms_output.put_line('error');
end oddelenie;

谢谢你。

标签: sqloracleplsqlerror-handlingplsqldeveloper

解决方案


只选择您需要的 - 部门名称。你会如何处理员工的身份证;你已经知道了,你把它作为参数传递了。

create or replace function oddelenie
  (par_emp_id in employees.employee_id%type)
  return varchar2
is 
  l_dept_name departments.department_name%type;
begin
  select department_name 
    into l_dept_name
  from employees join departments using (department_id)
  where employee_id = par_emp_id;

  return dept_name;

exception when no_data_found then
  return 'error';
end oddelenie;

推荐阅读