В Oracle 11g я пытаюсь вернуть несколько столбцов из вызова функции, который объединен с таблицами.Эта функция принимает employee_id в качестве входных данных и должна возвращать first_name и last_name как два отдельных столбца из таблицы employee.
Я создал тип
create or replace
type mytype as object
( val_1 varchar2(100),
val_2 number
);
/
И функция
create or replace
function myfunc(p_in number) return mytype is
v_deptname varchar2(100);
v_mgrid number;
begin
select department_name,manager_id into v_deptname,v_mgrid from DEPARTMENTS where department_id = p_in;
return
mytype(v_deptname,v_mgrid);
end;
/
Оба успешно созданы.Но когда я выполняю функцию,
select employee_id, salary, myfunc(department_id) from EMPLOYEES where employee_id in(100,101);
Это дает результат, как показано ниже,
EMPLOYEE_ID SALARY
----------- ----------
MYFUNC(DEPARTMENT_ID)(VAL_1, VAL_2)
--------------------------------------------------------------------------------
100 24000
MYTYPE('Executive', 100)
101 17000
MYTYPE('Executive', 100)
Но я хочу, чтобы мой результат был похож на
EMPLOYEE_ID SALARY VAL_1 VAL_2
----------- ---------- ------------------------------ ----------
100 24000 Executive 100
101 17000 Executive 100
Пожалуйста, помогитедля достижения этой цели.Спасибо