Я получил эту ошибку при создании этой функции (Pl SQL) - PullRequest
0 голосов
/ 27 марта 2020
Команда

Я получил эти сообщения об ошибках, когда пытался создать эту функцию image

1 Ответ

0 голосов
/ 27 марта 2020

Комментарии показывают, что вы сделали неправильно (плюс один лишний 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), но это другая проблема.

...