困惑为什么这不起作用 - 甲骨文日期声明



这导致了Oracle 11g中的cte:

declare 
STARTDATE DATE := '01/01/2017';
;with cte(Accounts) AS (....

这是我得到的错误:

ORA-06550:第 10 行第 1 列 PLS-00103:遇到符号";">

我需要声明一个startdat,它需要=提供的日期。

您发布的代码段在 thawith之前没有begin,而是有一个额外的分号。

declare 
startdate DATE := DATE '2017-01-01';
begin
with cte(Accounts) AS (....
... complete that statement ... ;
end;
/

您可以将日期值设置为声明的一部分;但是不应将其设置为字符串,因为这依赖于隐式转换和 NLS 设置。我使用了日期文字,它必须完全采用显示的格式,YYYY-MM-DD;但to_date()也可以工作(对于固定日期,文字更简单(。

对于我看到的代码,您必须删除语句 WITH 之前的分号

最新更新