我想插入一些數據到與下一年的日期相關的表中。我其實只需要插入工作日。Oracle 11g - 只在工作日插入表中的FOR循環?
BEGIN
FOR i IN 1..365 LOOP
INSERT INTO MY_TABLE (ID, MY_DATE)
VALUES (i, (to_date(sysdate,'DD-MON-YY')-1)+i);
END LOOP;
END;
我可以解決回去和刪除是週末兩天排我的問題,但似乎相當不雅 - 任何人都可以想辦法來修改我的循環,使其跳過週末?
我們可以使用D'格式掩碼代替。星期幾仍然取決於NLS_TERRITORY(美國的星期日是1,英國的星期日是7),但與日子的名字相比變化不大。 – APC
@APC - 非常真實。但是一旦你將NLS設置加入混音中,問題會變得更加複雜。我有足夠的時間知道我們美國人在哪一天宣佈本週開始,更不用說搞清楚你們英國人的決定了。 –
'無論NLS會話設置如何,'to_char(SYSDATE,'fmDAY','nls_date_language =''AMERICAN''')'都會返回正確的輸出* –