0
我想在每个分区中对长时间的日期进行计数。所以我使用循环从我试图提取将在分区中使用的日期。但是我得到了错误。无法解决它。任何人都可以帮我解决这个问题,以及一些可能增加我的知识的文件吗?谢谢。在立即执行中使用变量
declare
call_enddate date;
totalcount number;
begin
for curdate in (WITH x(d) AS
(SELECT TO_DATE('2016-09-01', 'yyyy-mm-dd')
FROM dual
UNION ALL
SELECT d + interval '1' day
FROM x
WHERE d < TO_DATE('2017-09-05', 'yyyy-mm-dd'))
SELECT to_char (d, 'YYYYMMDD') Date_Char FROM x
)
loop
execute immediate 'select --parallel(32)
trunc(call_end_time), count(*) into call_enddate, totalcount
from lic_msc_data partition(p'||TO_CHAR(curdate.Date_Char,'YYYYMMDD'||'))
where sp_number like ''88016%''
group by trunc(call_end_time)';
dbms_output.put_line(call_enddate||'----'||totalcount);
end loop;
end;
错误代码:
ORA-06550: line 19, column 55:
PLS-00103: Encountered the symbol ";" when expecting one of the following:
) , * & = - + </> at in is mod remainder not rem =>
<an exponent (**)> <> or != or ~= >= <= <> and or like
出于好奇,为什么你不能使用分区键作为分组的列?这样,你应该能够一次查询表格并获得你需要的结果。请你能告诉我们桌子是如何分区的吗? – Boneist