2017-05-05 60 views
0

我正面临着下面的proc问题。我是PL/SQL新手,仍在探索。如何使用显式查询在光标中传递参数

我需要从其他表的last_run基础上拉所有使用细节。另外,日期以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; 

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

在此先感谢。

+2

你的问题是什么? – APC

+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; 
+0

感谢Marko提供快速建议。我正在更新proc并添加上述功能。即使您提出的更改仍然无效。 –

+0

请定义'不工作'。 –