我有一个返回单个日期的查询,我想将此日期存储在一个全局变量中,以便可以在其他地方使用。下面是返回单个日期的查询:
select distinct
case when to_char(batchdate, 'd') between 1 and 6 then batchdate - to_char(batchdate, 'd') else batchdate end edate
from table
where batchdate = (select max(batchdate) from table);
现在我正在尝试使用名为DEFINE
的内置函数来声明全局变量。
DEFINE = (select distinct
case when to_char(batchdate, 'd') between 1 and 6 then batchdate - to_char(batchdate, 'd') else batchdate end edate
from table
where batchdate = (select max(batchdate) from table))
这将引发错误。
有什么方法可以将该查询的输出存储在全局变量中?
嗯,是的-有点。这是一个示例,其中包含您要放入SQL Developer的语句列表:
variable v_max_sal number;
exec select max(sal) into :v_max_sal from emp;
select ename from emp where sal = :v_max_sal;
如果您一个接一个地执行它们,直到最后一个提示您输入:v_max_sal
变量的值(这不是您想要的值)之前,都可以。但是,如果您以script(最新版本中的F9
键盘快捷键)执行最后一条语句(或-当我们在执行时-整个代码),则最终结果为预期。
看看是否有帮助。