创建此函数(PlSQL)时出现此错误

时间:2020-03-27 07:29:03

标签: oracle plsql

团队在尝试创建功能时收到了这些错误消息 image

1 个答案:

答案 0 :(得分:0)

注释显示您做错了什么(加上一个多余的begin-end块):

create or replace function nombre_completo
  (p_id in hr.employees.employee_id%type)
return varchar2
is
  nombre_completo varchar2(100);    --> missing size
  nombre          varchar2(100);    --> missing size
  apellido        varchar2(100);    --> missing size
begin
  select first_name, last_name      --> wrong INTO clause
    into nombre, apellido
    from hr.employees
    where employee_id = p_id;

  nombre_completo := apellido;
  return nombre_completo;
end;

但是,当您选择不使用的值并声明多余的变量时,可以将其缩短为

create or replace function nombre_completo
  (p_id in hr.employees.employee_id%type)
return hr.employees.apellido%type
is
  nombre_completo hr.employees.apellido%type;
begin
  select last_name    
    into nombre_completo
    from hr.employees
    where employee_id = p_id;

  return nombre_completo;

exception
  when no_data_found then
    return null;
end;

我没有您的桌子,所以我无法测试它,但是-通常来说-这就是它的外观。现在,可能还有其他问题(例如,您可能想处理no_data_found之类的异常),但这是另一个问题。