如何使用plsql中的过程返回记录表

时间:2011-03-08 06:50:15

标签: plsql

我正在编写程序

   create or replace procedure my_proc(limit_value in number,.........)
   is
       cursor...................
       .........................
   begin
       open ...;
       loop
         .....
         .....
       close ....;
   end my_proc;

我想生成薪水低于限额的报告。

是否可以使用OUT参数获取表记录以生成报告?

如果可能,请解释

1 个答案:

答案 0 :(得分:0)

是的,你可以。您甚至可以使用过程/函数的返回值来执行此操作:

create or replace type salary_rec as object (
    emp_id number
    salary number
);

create or replace type t_salary as table of salary_rec;

create or replace function retrieve_emp(
    i_max_salary number
) return t_varchar_number
as
    result t_salary;
begin
    select salary_rec(emp_id, salary) bulk collect into result
    from emp_salary
    where salary <= i_max_salary;

    return ret;
end;
/

这只是BULK COLLECT和Oralce和PL / SQL中不同表类型的众多变体之一。