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