目标:生成从2018年01月01日起后延50年的日历数据表,周六日默认是节假日,法定假日需要手动维护。

步骤1:创建表

-- Create table
create table KR_HOLIDAY_MANAGE
(
  sys_id     VARCHAR2(50) not null,
  set_date   VARCHAR2(10) not null,
  year       VARCHAR2(4),
  month      VARCHAR2(2),
  week       VARCHAR2(20),
  year_num   VARCHAR2(3),
  month_num  VARCHAR2(2),
  is_holiday VARCHAR2(2) not null,
  remarks    VARCHAR2(50)
);
-- Add comments to the table 
comment on table KR_HOLIDAY_MANAGE
  is '假日信息表';
-- Add comments to the columns 
comment on column KR_HOLIDAY_MANAGE.sys_id
  is '系统标识';
comment on column KR_HOLIDAY_MANAGE.set_date
  is '日';
comment on column KR_HOLIDAY_MANAGE.year
  is '年';
comment on column KR_HOLIDAY_MANAGE.month
  is '月';
comment on column KR_HOLIDAY_MANAGE.week
  is '星期几';
comment on column KR_HOLIDAY_MANAGE.year_num
  is '年的第几天';
comment on column KR_HOLIDAY_MANAGE.month_num
  is '月的第几天';
comment on column KR_HOLIDAY_MANAGE.is_holiday
  is '是否假日:1是、0否,默认值为0';
comment on column KR_HOLIDAY_MANAGE.remarks
  is '备注';
-- Create/Recreate indexes 
create index HOLEDAY_IDX on KR_HOLIDAY_MANAGE (IS_HOLIDAY)
  tablespace KEYRISK
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
create index HOLEDAY_IDX_YEAR on KR_HOLIDAY_MANAGE (YEAR);
alter table KR_HOLIDAY_MANAGE add primary key (SYS_ID, SET_DATE);
步骤2: 创建过程

DECLARE
  D_DATE DATE;
  V_BEGIN_DATE VARCHAR2(8);
BEGIN
  V_BEGIN_DATE := '20180101';
  D_DATE := TO_DATE(V_BEGIN_DATE,'YYYYMMDD');
  EXECUTE IMMEDIATE 'TRUNCATE TABLE KR_HOLIDAY_MANAGE';
  WHILE D_DATE < ADD_MONTHS(TO_DATE(V_BEGIN_DATE,'YYYYMMDD'),600) LOOP
  INSERT INTO KR_HOLIDAY_MANAGE 
  SELECT '0',
         TO_CHAR(D_DATE,'YYYYMMDD') SET_DATE,
         TO_CHAR(D_DATE,'YYYY') YEAR,
         TO_CHAR(D_DATE,'MM') MONTH,
         TO_CHAR(D_DATE,'DAY') WEEK,
         TO_CHAR(D_DATE,'DDD') YEAR_NUM,
         TO_CHAR(D_DATE,'DD') MONTH_NUM,
         CASE WHEN TO_CHAR(D_DATE,'D') IN ('1','7') THEN '1' ELSE '0' END IS_HOLIDAY,
         ''
    FROM DUAL;
  
  D_DATE := D_DATE + 1;  
  END LOOP;
  COMMIT;
  DBMS_OUTPUT.PUT_LINE('S');
END;
结果截图:

Oracle批量生成日历数据表相关推荐

  1. Oracle新建的用户看不到表,Oracle 创建用户及数据表的方法

    Oracle 创建用户及数据表的方法 更新时间:2009年09月25日 23:13:29   作者: 刚开始学习oracle的朋友可以看下,这个是基础了. 一.概念 1. 数据库 (Database) ...

  2. 改用C++生成自动化数据表

    改用C++生成自动化数据表 前面的文章中,我们讨论了使用一个基于.NET的第三方程序库来从程序中来生成数据表.在我看来,这整个思路是非常有用的,例如为显示测试结果.我经常会自己在博客中尝试各种像这样的 ...

  3. Oracle中表的键和检查,Oracle 过程中检查数据表存在与否

    在过程中,尤其是每天执行的任务,通常要检查查询的数据表存在不存在,如果不存在则等待一段时间在进行执行,以下代码实现了这个功能,如果表不存在,抛出异常,交给异常处理代码,确保数据完整性 使用方法:p_C ...

  4. 一个批量生成联系人数据(vcf)的小工具

    一个批量生成联系人数据的小工具(vcf) 1.Python代码 代码如下(示例): import random def create_contact(number):surname = [" ...

  5. oracle两表交集查询,Oracle对两个数据表交集的查询

    正在看的ORACLE教程是:Oracle对两个数据表交集的查询. Oracle关系型数据库管理系统是世界上流行的关系数据库,它是一个极其强大.灵活和复杂的系统,据说,在使用oracle时应有这样的思想 ...

  6. php 批量生成数量,laravel批量生成假数据的方法

    D:\phpStudy\WWW\api.douxiaoli.com\database\factories\ModelFactory.php D:\phpStudy\WWW\BCCKidV1.0\ven ...

  7. oracle将一个表数据更新时间,Oracle批量更新,将一个表的数据批量更新另一表

    [问题]现在有两个千万级别的结构相同数据不同数据表T_SMS_PHONENO(目的表),T_SMS_PHONENO2(源表),根据源表数据更新目的表的数据. [分析]根据经验,更新方法一般有以下几种: ...

  8. oracle批量修改多张表的数据,Oracle批量修改用户表table的表空间

    一.修改用户表table的表空间 1.修改用户表table的表空间:alter table 表名 move tablespace 新表空间名; 2.查询所有用户表:select * from user ...

  9. oracle中生成大批量数据的方法-下

    方法五:使用PLSQL的数据生成器 首先测试环境建立:dept表 CREATE TABLE dept(deptno NUMBER(6),dname VARCHAR2(20),loc VARCHAR2( ...

最新文章

  1. tplink wr886n v5.0 ttl 接线方法
  2. 多数大数据项目都以失败而告终的原因
  3. C++实现字符全排列
  4. jquery easyui combobox设置默认选中第一项
  5. Redis基础知识之————如何处理客户端连接
  6. 中leetcode提示未登录_分享一款将 LeetCode 中 AC 的题目转化为 MarkDown 表格的插件...
  7. jquery ajax 防止浏览器缓存
  8. 移动Oracle的用户表空间文件方法
  9. (113)FPGA面试题-LUT计算问题
  10. 张杰和机器人_科学艺术两开花,国内首个机器人乐队诞生有什么重要的意义?...
  11. python模拟一个简单的取款机,python简单区块链模拟详解
  12. sql server 转发_SQL Server中的转发记录性能问题
  13. 网上购物系统-关系型数据库设计举例
  14. 基于原语的千兆以太网RGMII接口设计
  15. ROG 2022 款幻 13 评测
  16. MySQL - Failed to open the referenced table XXX
  17. python如何给某列数据打标签_Python map, apply, transform 打标签方法汇总(初阶到高阶)...
  18. C语言 —— 多维数组
  19. alpine 使用国内源
  20. Context Contrasted Feature and Gated Multi-scale Aggregation for Scene Segmentation

热门文章

  1. 弘辽科技:拼多多新店铺dsr多久出来?怎么提高?
  2. 解决360等杀毒软件阻止文件替换的问题!
  3. 在西安培训JAVA四个月能就业吗
  4. 把自己拆解成颗粒,然后见到vivo
  5. ClickHouse删除数据
  6. WIN10下配置swoolephp7.4的docker镜像流程及资料聚合
  7. 7-4 神坛 (30分)
  8. Operator——Redis之重启虚拟机后无法重建集群
  9. 什么是BI(Business Intelligence)
  10. rfid卡的读写c语言,RFID超高频桌面式USB发卡器