Oracle plsql 月历

原创 2013年12月05日 17:06:19
declare
  v_year number := 2013;
  v_month number := &input_month;
  v_day number;
  v_lastday number;
begin
  dbms_output.put_line(v_year || '年' || v_month || '月的月历');
  
  --转换星期为数字,方便计算
  case substr(to_char(to_date(v_year || v_month,'yyyymm'),'day'),3,1)
    when '日' then v_day := 1;
    when '一' then v_day := 2;
    when '二' then v_day := 3;
    when '三' then v_day := 4;
    when '四' then v_day := 5;
    when '五' then v_day := 6;
    when '六' then v_day := 7;
    else null;
  end case;
  v_lastday := to_char(last_day(to_date(v_year || v_month,'yyyymm')),'dd');
  dbms_output.put_line('第一天为本周第' || v_day || '天');
  dbms_output.put_line('本月共' || v_lastday || '天');
  dbms_output.put_line(' 日  一  二  三  四  五  六');
  --PS:以上所有要用到的数据都已经得到了,下面是展示
  
  --缩进月的第一天
  for j in 1 .. v_day - 1 loop
      dbms_output.put('    ');
  end loop;
  
  --顺序打印每天
  for i in 1 .. v_lastday loop
    dbms_output.put(to_char(i,'99') || ' ');
    
    --如果遇到星期六,则换行(保证星期的标识从1-7循环)
    if v_day = 7 then
      dbms_output.put_line('');
      v_day := 1;
    else
      v_day := v_day + 1;
    end if;
  end loop;
  --PS:空格在打印的时候,可能被省略,可以换成其他字符尝试
  
  --输出最后一行未能输出的字符
  dbms_output.put_line('');
end;

效果如下:

2013年2月的月历
第一天为本周第6天
本月共28天
日 一 二 三 四 五 六
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28

版权声明:本文为博主原创文章,未经博主允许不得转载。

ORACLE PLSQL代码块学习

背景: 本人小小实习生,oracle小白,,刚刚接触oracle的plsql块。记录下来这个学习过程,有错麻烦各位指出。 情景: 通过遍历查询一个表的结果集,得到结果集中每行结果中的其中一...
  • ERex_Wu
  • ERex_Wu
  • 2017年04月22日 14:53
  • 1122

不安装oracle客户端配置使用plsql

在不安装oracle client的前提下, 想要使用plsql。可通过安装oracle instant client 然后配置后即可使用plsql。 地址: http://www.oracle....
  • lxl631
  • lxl631
  • 2016年05月20日 10:24
  • 4960

plsql 连接oracle数据库详细配置

第一次用这种方式连接oracle数据库,自己百度搞了快两个小时才弄好,百度的资源也不靠谱,看了好多都不完整,搞完了报各种错误,各种连不上数据库,自己整理下资料,希望给其他的同行予以借鉴,不能保证每个人...
  • weinichendian
  • weinichendian
  • 2016年06月22日 18:25
  • 43180

PLSQL Developer连接Oracle及PLSQL Developer基本使用,表及语句索引情况

1.安装PLSQL DeveloperOracle数据库和PL/SQL Developer的安装步骤,这里就不做叙述了,百度安装方法的时候有说在安装PL/SQL Developer软件时,不要安装在P...
  • Harry_ZH_Wang
  • Harry_ZH_Wang
  • 2017年02月18日 23:23
  • 1804

Oracle简易客户端和plsql的配置

首先得清楚。连接数据库有2种方式:①种是在本机安装Oracle数据库。①种是安装一个oracle简易客户端。在需要一个可视化的界面。当然,简易客户端跟oracle数据库比较少了一些功能。     像经...
  • zh0lian
  • zh0lian
  • 2017年05月19日 11:49
  • 931

Oracle PLSQL Procedure 如何进行性能调优分析

在Java的性能调优分析中,可以使用 JProfiler 分析JVM运行时的CPU消耗、Memory占用、Thread情况等信息。对于Java代码中调用的Oracle的存储过程、函数它也能输出调用时间...
  • u012284514
  • u012284514
  • 2015年10月22日 11:24
  • 998

ORACLE安装后配置PLSQL

本人在使用oracle的时候,常常发现plsql连不上oracle的时候。有的本机不能连,有的远程不能连,时常捉摸不透问题到底出在哪儿,一会儿实例名,一会儿服务名,一会儿说缺少监听,一会说解析不了服务...
  • dylwildwolf
  • dylwildwolf
  • 2016年09月27日 21:38
  • 5921

PLSQL developer 连接不上64位Oracle 的解决方法

Windows 64位下装Oracle 11g 64位,PLSQL Developer使用出现以下问题: 1、Database下拉框为空: 2、强制输入用户名、密码及Database,登录弹出: ...
  • kalision
  • kalision
  • 2015年04月20日 15:05
  • 1619

免安装oracle客户端使用PLSQL

免安装oracle客户端使用PLSQL Oracle客户端挺招人烦的,部署连接它的应用通常需要先安装它的客户端,安装程序要求在目标机器上写注册表,假设你没有洁癖的话,你仍可能被下面的事情绊住:当你的...
  • rogelong
  • rogelong
  • 2016年04月23日 21:29
  • 4941

PLSQL Developer 连接oracle(本机,虚拟机)

准备: 【1】主机环境:win7+64位 【2】oracle 版本:        本机:11.2.0.1.0         虚拟机1:10.2.0.1.0        虚拟机2:11....
  • yfb8530
  • yfb8530
  • 2013年05月29日 00:11
  • 1120
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle plsql 月历
举报原因:
原因补充:

(最多只允许输入30个字)