我試圖創建一個參考表,顯示所有日期,並通過日期鍵引用我的表中。但是,這不是我所期望的。甲骨文 - 創建日期參考表時出現問題
DECLARE
start_date DATE := TO_DATE('2009-01-01','YYYY-RR-DD');
end_date DATE := TO_DATE('2021-01-01','YYYY-RR-DD');
BEGIN
WHILE start_date < end_date LOOP
SELECT
TO_CHAR(start_date, '-YYYYMMDD') AS DATE_KEY
, TO_CHAR(start_date, 'YYYY-MM-DD') AS "ACTUAL_DATE"
, EXTRACT(YEAR FROM start_date) AS "YEAR"
, EXTRACT(MONTH FROM start_date) AS "MONTH"
, TO_CHAR(start_date, 'MONTH') AS "MONTH_NAME"
, TO_CHAR(start_date, 'WW') AS "WEEK_OF_YEAR"
, EXTRACT(DAY FROM start_date) AS "DAY"
, TO_CHAR(start_date, 'DDD') AS "DAY_OF_YEAR"
, TO_CHAR(start_date, 'DAY') AS "WEEKDAY"
, TO_CHAR(start_date, 'Q') AS "QTR_OF_YEAR"
, TO_CHAR(start_date, 'MONTH DD, YYYY') AS FRIENDLY
INTO V_DATE
FROM dual;
start_date := start_date+1;
END LOOP;
END;
我得到這個錯誤,但不管我嘗試什麼,我總是收到錯誤。 我試過聲明V_DATE,但是這個工作不正常。
作爲解決方法,我能夠在Excel中創建所需的表格,但它在每年的週末有一個小問題。加載此數據後,我可以使用更新查詢來修復此問題。 這將是一個理想的實際查詢將填充,因爲這些數據可能會超出我列出的額外年份。
謝謝你,艾倫
你有日期轉換格式錯誤的面具。你應該使用'YYYY-MM-DD' – Aleksej
你得到*什麼*錯誤?你的聲明格式掩碼有RR而不是MM;你可能想爲這些文件使用ANSI日期文字。您也可以使用分層查詢來填充表,並避免PL/SQL。 –
您正在使用Oracle內置函數。爲什麼你需要一張桌子? –