oracle - 将过程中的值传递给 Select 语句

我想创建一个从员工表返回最大日期的过程,然后允许我在选择语句中再次调用最大日期。

谢谢。

注意:我将在许多用于报告的选择语句中使用max_date_PARAM

CREATE OR REPLACE PROCEDURE max_date_proc (max_date_PARAM out DATE) 
IS
BEGIN
    SELECT  max(start_date)  INTO max_date_PARAM
     FROM employee 
   END max_date_proc;
/
select * from benefits where claim > = max_date_PARAM;

最佳答案

如果你创建了一个函数

CREATE OR REPLACE FUNCTION get_max_start_date
  RETURN DATE
IS
  l_max_date DATE;
BEGIN
  SELECT MAX(start_date)
    INTO l_max_date
    FROM employee;
  RETURN l_max_date;
END get_max_start_date;

然后你可以查询

SELECT *
  FROM benefits
 WHERE claim >= get_max_start_date();

当然,你也可以在没有函数的情况下这样做

SELECT * 
  FROM benefits
 WHERE claim >= (SELECT MAX(start_date)
                   FROM employee)

https://stackoverflow.com/questions/5585782/

相关文章:

django - 区分 ModelAdmin 媒体以在 Django 中添加/更改页面

math - 需要给定排名和底池金额的奖品奖励功能

regex - 正则表达式和 sed 从数百个文件中删除某些字符串的所有出现

sql - 为 SQL 中的每个重复项获取较小的索引

xml - 在 vb net 中从 XML 中获取值

python - 始终返回数组的 numpy 切片

perl - 如何在 perl 中的 fork 之间共享简单标量(计数器变量)?

java - 在 Java 中,我可以使用单个方法作为其他方法的计时器吗?

python - OOP Python 向基类添加一些属性?

drupal - 如果编辑或添加表单,如何在 drupal 节点表单中检测?