Home >Database >Mysql Tutorial >使用PLSQL 打印日历

使用PLSQL 打印日历

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 17:24:551342browse

最近有些闲,看完了concept突然有种空虚的感觉。闲话不多说。 用PLSQL写了一个打印日历的功能。 create or replace package disp

最近有些闲,,看完了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 31

PL/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 31

PL/SQL procedure successfully completed.

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn