【问题标题】:How to pass parameter in cursor using explicit query如何使用显式查询在游标中传递参数
【发布时间】:2017-05-05 08:47:20
【问题描述】:

我遇到了以下过程的问题。我是 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;

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

提前致谢。

【问题讨论】:

  • 你有什么问题?
  • 标记为不清楚。请添加一些细节以使其成为一个可行的技术问题,否则它将被关闭。

标签: oracle plsql procedure oracle12c


【解决方案1】:

您需要将 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;

【讨论】:

  • 感谢 Marko 的快速建议。我正在更新 proc 并添加上述功能。即使您建议的更改仍然无效。
猜你喜欢
  • 1970-01-01
  • 2016-10-19
  • 2015-08-26
  • 2021-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-08
  • 2023-01-10
相关资源
最近更新 更多