Fou*_*aks 2 sql database oracle constants
我是Oracle新手(虽然熟悉SQL)并且必须编写一个相当复杂的查询,其中多次使用从当前日期派生的值.不是每次计算值,而是为此目的声明常量似乎是显而易见的.
但是,当我尝试在后续SELECT语句中使用我的DateIndex常量时(我希望根据"DateIndex"返回值),解析器告诉我它正在执行SELECT INTO.
我所拥有的(简化为最低形式)是......
DECLARE DateIndex CONSTANT NUMBER(10,0) := 24;
BEGIN
SELECT DateIndex
FROM DUAL;
END;
Run Code Online (Sandbox Code Playgroud)
是否只能在选择表而不是返回结果时使用常量?看起来很奇怪.
请注意,我没有对数据库的写权限.
非常感谢您的帮助.
我更喜欢以下使用WITH和DUAL表:
WITH
const AS ( SELECT
3.14 AS pi,
1 AS one
FROM DUAL
)
SELECT * FROM sometable t, const
WHERE t.value = const.pi;
Run Code Online (Sandbox Code Playgroud)
这允许您在语句中使用之前定义常量,并且实际语句不会被子选择混乱.