如何使用显式查询传递游标中的参数

时间:2017-05-05 08:47:20

标签: oracle plsql procedure oracle12c

我正面临着以下问题。我是PL / SQL的新手,仍然在探索。

我需要在其他表的last_run的基础上提取所有使用细节。此外,date以varchar格式存储,因此也需要解析它。

procedure get_emp_info(rc_emp_info out ref_cursor) as
    last_sync varchar2;
begin
    select param_value into p_last_run from parameters where key = 'LAST_UPDATE_DATE';

    open rc_emp_info for
        select e.employee_id, e.user_id, e.first_name, e.last_name
        from   employee e
        where  last_run > p_last_run - 1;

end get_emp_info;

请提供解决此问题的指示。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您需要将p_last_run声明为变量,然后在其他地方使用它。

declare
    p_last_run date;
begin
    SELECT to_date(param_value,'YYYYMMMDD' /*or whatever format is used*/) INTO p_last_run FROM parameters WHERE key = 'LAST_UPDATE_DATE'; 
    .
    .
    .
end;