Welcome 微信登录

首页 / 数据库 / MySQL / 使用PLSQL 打印日历

最近有些闲,看完了concept突然有种空虚的感觉。闲话不多说。用PLSQL写了一个打印日历的功能。create or replace package display_date is
  procedure display_spec_mon (year number , month number)  ;
end ; create or replace package body display_date is
  type t_conv_mon is table of varchar2(10) ;
  conv_mon t_conv_mon := t_conv_mon() ;
  procedure display_title (year number , month number)
  is
  begin
    dbms_output.put_line(year||"."||conv_mon(month)) ;
    dbms_output.put_line(lpad(" ",21,"-")) ;
    dbms_output.put_line("Su Mo Tu We Th Fr Sa");
  end  ;
  procedure display_spec_mon (year number , month number)
  is
    current_mon date ;
    current_line varchar2(21) ;
  begin
--    dbms_output.put_line (year||lpad(month||"",2,"0")||"01") ;
    display_title (year,month) ;
    current_mon := to_date(year||lpad(month||"",2,"0")||"01","yyyymmdd") ;
    for i in 1 .. (add_months(current_mon,1)-current_mon) loop
      if i = 1 then
        current_line := current_line || (lpad(" ",(to_char(current_mon+i-1,"D")-1)*3,"-- "));
      end if ;
      current_line := current_line || rpad(i||"",3," ");
      if length(current_line)>=21 then
        dbms_output.put_line(current_line) ;
        current_line := "" ;
      end if ;
    end loop ;
    dbms_output.put_line(current_line) ;
  end ;
 
 
begin
  conv_mon.extend(12);
  conv_mon(1) :=  "January" ;
  conv_mon(2) :=  "February" ;
 
  conv_mon(3) :=  "Marcy" ;
  conv_mon(4) :=  "April" ;
 
  conv_mon(5) :=  "May" ;
  conv_mon(6) :=  "June" ;
 
  conv_mon(7) :=  "July" ;
  conv_mon(8) :=  "August" ;
 
  conv_mon(9) :=  "September" ;
  conv_mon(10) := "October" ;
 
  conv_mon(11) :=  "November" ;
  conv_mon(12) :=  "December" ;
end ; 执行结果:_sys@DAVID> exec display_date.display_spec_mon(2013,10) ;
2013.October
--------------------
Su Mo Tu We Th Fr Sa
-- -- 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 29 30 31PL/SQL procedure successfully completed._sys@DAVID> exec display_date.display_spec_mon(2012,12) ;
2012.December
--------------------
Su Mo Tu We Th Fr Sa
-- -- -- -- -- -- 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 29
30 31PL/SQL procedure successfully completed.Oracle Database 中 B*Tree 索引内部维护Oracle Text 全文索引 几种典型应用场景相关资讯      plsql  PLSQL使用 
  • PLSQL 经常自动断开失去连接的解决  (09/19/2015 15:57:43)
  • PLSQL Developer 不能连接 64位   (03/30/2015 15:56:21)
  • PLSQL连接远程数据库  (12/12/2014 16:53:57)
  • Oracleclient+PLSQL Developer实现  (05/09/2015 10:55:10)
  • 64位Oracle客户端上PLSQL无法识别  (03/30/2015 15:22:13)
  • 让PLSQL记住曾经登录过的用户名和  (03/29/2014 15:11:30)
本文评论 查看全部评论 (0)
表情: 姓名: 字数