Oracle日付取得

PL/SQLのコードです。

日付                           NUMBER(8);
会社コード                     VARCHAR2(10);
曜日                           VARCHAR2(2);
会計年度                       NUMBER(4,0);
年                             NUMBER(4,0);
年月                           NUMBER(6,0);
月                             NUMBER(2,0);

/* 日付の分解(2011/01/30の場合) */
日付 :=20110131

/* 翌日 */
日付 := TO_NUMBER(TO_CHAR(TO_DATE(日付)+1,'YYYYMMDD'));

/* 日付の分解 */
年   := TRUNC(日付/10000); -- 2011
年月:= TRUNC(日付/100); -201101
月   := MOD(年月,100); -- 1
曜日 := SUBSTR(TO_CHAR(TO_DATE(日付),'DAY'),1,1); -- '木'

会計年度 := 年;
IF 月 < 4 THEN
  会計年度 := 会計年度-1; -- 2010
END IF;