Oracle SQL Kalenderanzeige
Sie möchten einen Kalender für das aktuelle Jahr ausgeben lassen? Mit SQL*Plus ist das beispielsweise wie folgt möglich:
Kalenderanzeige in Oracle SQL*Plus
BREAK ON MONTH SKIP 1 COLUMN MONTH 20 SET LINESIZE 120 SELECT LPAD( Month, 20-(20-LENGTH(month))/2 ) month, "SON", "MON", "DIN", "MIT", "DON", "FRE", "SAM" FROM ( SELECT TO_CHAR(dt,'fmMonthfm YYYY') month, TO_CHAR(dt+1,'iw') week, MAX(DECODE(TO_CHAR(dt,'d'),'1',LPAD(TO_CHAR(dt,'fmdd'),2))) "SON", MAX(DECODE(TO_CHAR(dt,'d'),'2',LPAD(TO_CHAR(dt,'fmdd'),2))) "MON", MAX(DECODE(TO_CHAR(dt,'d'),'3',LPAD(TO_CHAR(dt,'fmdd'),2))) "DIN", MAX(DECODE(TO_CHAR(dt,'d'),'4',LPAD(TO_CHAR(dt,'fmdd'),2))) "MIT", MAX(DECODE(TO_CHAR(dt,'d'),'5',LPAD(TO_CHAR(dt,'fmdd'),2))) "DON", MAX(DECODE(TO_CHAR(dt,'d'),'6',LPAD(TO_CHAR(dt,'fmdd'),2))) "FRE", MAX(DECODE(TO_CHAR(dt,'d'),'7',LPAD(TO_CHAR(dt,'fmdd'),2))) "SAM" FROM ( SELECT TRUNC(SYSDATE,'y')-1+ROWNUM dt FROM all_objects WHERE ROWNUM <= ADD_MONTHS(TRUNC(SYSDATE,'y'),12) - TRUNC(SYSDATE,'y') ) GROUP BY TO_CHAR(dt,'fmMonthfm YYYY'), TO_CHAR( dt+1, 'iw' ) ) ORDER BY TO_DATE( month, 'Month YYYY' ), TO_NUMBER(week);
Die Ausgabe sind dann beispielsweise so aus:
SO MO DI MI DO FR SA
-- -- -- -- -- -- --
Januar 2009
1 2 3
5 6 7 8 9 10 4
12 13 14 15 16 17 11
19 20 21 22 23 24 18
26 27 28 29 30 31 25
Februar 2009
2 3 4 5 6 7 1
9 10 11 12 13 14 8
16 17 18 19 20 21 15
23 24 25 26 27 28 22
...

info
held-informatik
de