如何从PL / SQL函数打印返回值

时间:2017-11-09 15:42:30

标签: oracle function plsql oracle11g return

我的PL / SQL代码有问题

  

我需要返回Max(Salary)

     

我的功能是:

create or replace
FUNCTION largest_salary
(j_id EMPLOYEES.JOB_ID%TYPE)
return EMPLOYEES.SALARY%TYPE
IS
sal EMPLOYEES.SALARY%TYPE;

begin
select max(salary)
into sal
from employees
where job_id = j_id;
return sal;
end largest_salary;
  

当我运行此查询时:

set serveroutput out

Begin
dbms_output.put_line(largest_salary('SA_REP'));
End;

它没有显示任何东西,任何人都可以帮助我获得最高(工资)?

  

注意:我认为它会返回多个值,但我不知道如何解决它

3 个答案:

答案 0 :(得分:0)

您可以使用:

SELECT largest_salary('SA_REP')
FROM dual;

它不是打印,但你会得到网格结果。

答案 1 :(得分:0)

您应该使用set serveroutput on代替

set serveroutput out

答案 2 :(得分:0)

你必须聚合查询结果,然后一切都会好的

select max(salary)
into sal
from employees
where job_id = j_id;
group by job_id;

问候