oracle_日期维度表插入数据
2016-04-29 17:01
627 查看
---------------------------------------天-------------------------------------------------------------
INSERT INTO DIM_PERIOD
SELECT TO_NUMBER(TO_CHAR(CURRDATE, 'YYYYMMDD')) AS PERIOD_ID,
'天' AS PERIOD_LEVEL,
CURRDATE AS DAY_DATE,
TO_NUMBER(TO_CHAR(CURRDATE, 'YYYYMMDD')) AS DAY_NUM,
TO_CHAR(CURRDATE, 'YYYYMMDD') AS YMDAY,
TO_CHAR(CURRDATE, 'YYYYMM') AS YMON,
TO_CHAR(CURRDATE, 'YYYY') AS YEAR,
-- TO_CHAR(CURRDATE, 'DDD') AS DAY_NBR_IN_YEAR,
TO_CHAR(CURRDATE, 'DD') AS DAY_NBR_IN_MON,
TO_CHAR(CURRDATE, 'W') AS WEEK_NBR_IN_MON,
TO_CHAR(CURRDATE, 'WW') AS WEEK_NBR_IN_YEAR,
TO_CHAR(CURRDATE, 'MM') AS MON_NBR_IN_YEAR,
TO_CHAR(CURRDATE, 'Q') AS QTR_NBR_IN_YEAR,
TO_CHAR(CURRDATE, 'YYYY')||'年' AS YEAR_NAME,
TO_CHAR(CURRDATE, 'Q')||'季度' AS QTR_NAME,
TO_CHAR(CURRDATE, 'MM')||'月' AS MON_DESC,
TO_CHAR(CURRDATE, 'Day') AS WEEK_NAME,
CASE
WHEN TO_NUMBER(TO_CHAR(CURRDATE, 'MM')) <= 6 THEN
'上半年'
ELSE
'下半年'
END AS HF_YEAR_FLG,
CASE
WHEN TO_CHAR(CURRDATE,'YYYYMMDD')=TO_CHAR(LAST_DAY(CURRDATE),'YYYYMMDD') THEN
'是'
ELSE
'不是'
END AS MON_LAST_DAY_FLAG,
NULL,
NULL,
NULL,
TO_CHAR(SYSDATE,'YYYYMMDD') AS UPD_DATE_SK,
NULL,
NULL,
SYSDATE,
SYSDATE,
TO_CHAR(SYSDATE,'YYYYMMDD') AS INS_DATE_SK
FROM
(SELECT LEVEL N,
TO_DATE('2011-12-31', 'YYYY-MM-DD') +
NUMTODSINTERVAL(LEVEL, 'day') CURRDATE
FROM DUAL
CONNECT BY LEVEL <= 8000)
;
COMMIT;
------------------------------------------------月----------------------------------------------------
INSERT INTO DIM_PERIOD
SELECT DISTINCT TO_NUMBER(TO_CHAR(CURRDATE, 'YYYYMM')) AS PERIOD_ID,
'月' AS PERIOD_LEVEL,
NULL,NULL,NULL,
TO_CHAR(CURRDATE, 'YYYYMM') AS YMON,
TO_CHAR(CURRDATE, 'YYYY') AS YEAR,
NULL,NULL,NULL,
TO_CHAR(CURRDATE, 'MM') AS MON_NBR_IN_YEAR,
TO_CHAR(CURRDATE, 'Q') AS QTR_NBR_IN_YEAR,
TO_CHAR(CURRDATE, 'YYYY')||'年' AS YEAR_NAME,
TO_CHAR(CURRDATE, 'Q')||'季度' AS QTR_NAME,
TO_CHAR(CURRDATE, 'MM')||'月' AS MON_DESC,
NULL,
CASE
WHEN TO_NUMBER(TO_CHAR(CURRDATE, 'MM')) <= 6 THEN
'上半年'
ELSE
'下半年'
END AS HF_YEAR_FLG,
NULL,
NULL,
NULL,
NULL,
TO_CHAR(SYSDATE,'YYYYMMDD') AS UPD_DATE_SK,
NULL,
NULL,
SYSDATE,
SYSDATE,
TO_CHAR(SYSDATE,'YYYYMMDD') AS INS_DATE_SK
FROM
(SELECT LEVEL N,
TO_DATE('2011-12-31', 'YYYY-MM-DD') +
NUMTODSINTERVAL(LEVEL, 'day') CURRDATE
FROM DUAL
CONNECT BY LEVEL <= 8000)
;
COMMIT;
------------------------------------------------年----------------------------------------------------
INSERT INTO DIM_PERIOD
SELECT DISTINCT TO_NUMBER(TO_CHAR(CURRDATE, 'YYYY')) AS PERIOD_ID,
'年' AS PERIOD_LEVEL,
NULL,NULL,NULL, NULL,
TO_CHAR(CURRDATE, 'YYYY') AS YEAR,
NULL,NULL,NULL, NULL,NULL,
TO_CHAR(CURRDATE, 'YYYY')||'年' AS YEAR_NAME,
NULL,NULL,NULL, NULL,NULL,NULL,NULL,NULL,
TO_CHAR(SYSDATE,'YYYYMMDD') AS UPD_DATE_SK,
NULL,
NULL,
SYSDATE,
SYSDATE,
TO_CHAR(SYSDATE,'YYYYMMDD') AS INS_DATE_SK
FROM
(SELECT LEVEL N,
TO_DATE('2011-12-31', 'YYYY-MM-DD') +
NUMTODSINTERVAL(LEVEL, 'day') CURRDATE
FROM DUAL
CONNECT BY LEVEL <= 8000)
;
COMMIT;
INSERT INTO DIM_PERIOD
SELECT TO_NUMBER(TO_CHAR(CURRDATE, 'YYYYMMDD')) AS PERIOD_ID,
'天' AS PERIOD_LEVEL,
CURRDATE AS DAY_DATE,
TO_NUMBER(TO_CHAR(CURRDATE, 'YYYYMMDD')) AS DAY_NUM,
TO_CHAR(CURRDATE, 'YYYYMMDD') AS YMDAY,
TO_CHAR(CURRDATE, 'YYYYMM') AS YMON,
TO_CHAR(CURRDATE, 'YYYY') AS YEAR,
-- TO_CHAR(CURRDATE, 'DDD') AS DAY_NBR_IN_YEAR,
TO_CHAR(CURRDATE, 'DD') AS DAY_NBR_IN_MON,
TO_CHAR(CURRDATE, 'W') AS WEEK_NBR_IN_MON,
TO_CHAR(CURRDATE, 'WW') AS WEEK_NBR_IN_YEAR,
TO_CHAR(CURRDATE, 'MM') AS MON_NBR_IN_YEAR,
TO_CHAR(CURRDATE, 'Q') AS QTR_NBR_IN_YEAR,
TO_CHAR(CURRDATE, 'YYYY')||'年' AS YEAR_NAME,
TO_CHAR(CURRDATE, 'Q')||'季度' AS QTR_NAME,
TO_CHAR(CURRDATE, 'MM')||'月' AS MON_DESC,
TO_CHAR(CURRDATE, 'Day') AS WEEK_NAME,
CASE
WHEN TO_NUMBER(TO_CHAR(CURRDATE, 'MM')) <= 6 THEN
'上半年'
ELSE
'下半年'
END AS HF_YEAR_FLG,
CASE
WHEN TO_CHAR(CURRDATE,'YYYYMMDD')=TO_CHAR(LAST_DAY(CURRDATE),'YYYYMMDD') THEN
'是'
ELSE
'不是'
END AS MON_LAST_DAY_FLAG,
NULL,
NULL,
NULL,
TO_CHAR(SYSDATE,'YYYYMMDD') AS UPD_DATE_SK,
NULL,
NULL,
SYSDATE,
SYSDATE,
TO_CHAR(SYSDATE,'YYYYMMDD') AS INS_DATE_SK
FROM
(SELECT LEVEL N,
TO_DATE('2011-12-31', 'YYYY-MM-DD') +
NUMTODSINTERVAL(LEVEL, 'day') CURRDATE
FROM DUAL
CONNECT BY LEVEL <= 8000)
;
COMMIT;
------------------------------------------------月----------------------------------------------------
INSERT INTO DIM_PERIOD
SELECT DISTINCT TO_NUMBER(TO_CHAR(CURRDATE, 'YYYYMM')) AS PERIOD_ID,
'月' AS PERIOD_LEVEL,
NULL,NULL,NULL,
TO_CHAR(CURRDATE, 'YYYYMM') AS YMON,
TO_CHAR(CURRDATE, 'YYYY') AS YEAR,
NULL,NULL,NULL,
TO_CHAR(CURRDATE, 'MM') AS MON_NBR_IN_YEAR,
TO_CHAR(CURRDATE, 'Q') AS QTR_NBR_IN_YEAR,
TO_CHAR(CURRDATE, 'YYYY')||'年' AS YEAR_NAME,
TO_CHAR(CURRDATE, 'Q')||'季度' AS QTR_NAME,
TO_CHAR(CURRDATE, 'MM')||'月' AS MON_DESC,
NULL,
CASE
WHEN TO_NUMBER(TO_CHAR(CURRDATE, 'MM')) <= 6 THEN
'上半年'
ELSE
'下半年'
END AS HF_YEAR_FLG,
NULL,
NULL,
NULL,
NULL,
TO_CHAR(SYSDATE,'YYYYMMDD') AS UPD_DATE_SK,
NULL,
NULL,
SYSDATE,
SYSDATE,
TO_CHAR(SYSDATE,'YYYYMMDD') AS INS_DATE_SK
FROM
(SELECT LEVEL N,
TO_DATE('2011-12-31', 'YYYY-MM-DD') +
NUMTODSINTERVAL(LEVEL, 'day') CURRDATE
FROM DUAL
CONNECT BY LEVEL <= 8000)
;
COMMIT;
------------------------------------------------年----------------------------------------------------
INSERT INTO DIM_PERIOD
SELECT DISTINCT TO_NUMBER(TO_CHAR(CURRDATE, 'YYYY')) AS PERIOD_ID,
'年' AS PERIOD_LEVEL,
NULL,NULL,NULL, NULL,
TO_CHAR(CURRDATE, 'YYYY') AS YEAR,
NULL,NULL,NULL, NULL,NULL,
TO_CHAR(CURRDATE, 'YYYY')||'年' AS YEAR_NAME,
NULL,NULL,NULL, NULL,NULL,NULL,NULL,NULL,
TO_CHAR(SYSDATE,'YYYYMMDD') AS UPD_DATE_SK,
NULL,
NULL,
SYSDATE,
SYSDATE,
TO_CHAR(SYSDATE,'YYYYMMDD') AS INS_DATE_SK
FROM
(SELECT LEVEL N,
TO_DATE('2011-12-31', 'YYYY-MM-DD') +
NUMTODSINTERVAL(LEVEL, 'day') CURRDATE
FROM DUAL
CONNECT BY LEVEL <= 8000)
;
COMMIT;
相关文章推荐
- oracle 新建用户
- oracle根据表明查询表字段结构
- oracle日志挖掘dbms_logmnr
- oracle数据库rman备份与还原
- [精]Oracle 内存结构详解
- plsql oracle 无法解析指定的连接标识符
- Oracle RAC 环境下的连接管理
- 詩经甲骨文解讀:白駒
- ORACLE获取字符串中数字部分
- 查看oracle数据库的连接数以及用户
- Oracle API Gateway SOAP到REST协议转换
- oracle sql优化
- Oracle 后台进程详解
- oracle 清除当前用户的回收站
- 查看及修改Oracle编码格式方法
- 彻底卸载oracle数据库
- Oracle 进程详解
- Oracle 归档模式和非归档模式
- SQLServer2008新建链接服务器for Oracle
- oracle存储过程模板