这导致Oracle 11g中的CTE:
declare
STARTDATE DATE := '01/01/2017';
;with cte(Accounts) AS (....
这是我得到的错误:
ORA-06550:第10行第1列PLS-00103:遇到了符号“;”
我需要声明一个startdat,它需要=提供的日期。
答案 0 :(得分:1)
您发布的摘录在begin
之前没有with
,而是多余的分号。
declare
startdate DATE := DATE '2017-01-01';
begin
with cte(Accounts) AS (....
... complete that statement ... ;
end;
/
您可以将日期值设置为声明的一部分;不过,您不应将其设置为字符串,因为它依赖于隐式转换和NLS设置。我使用过a date literal,它必须完全显示为YYYY-MM-DD;但是to_date()
也可以工作(但对于固定日期,字面量会更简单)。
答案 1 :(得分:0)
对于我所看到的代码,必须删除语句WITH
之前的分号。