首页 > 数据库 >Oracle plsql 月历

Oracle plsql 月历

时间:2022-11-17 13:11:19浏览次数:42  
标签:dbms plsql -- when put Oracle output 月历 day

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

标签:dbms,plsql,--,when,put,Oracle,output,月历,day
From: https://blog.51cto.com/yuzhyn/5860707

相关文章

  • Oracle 练习题P256
    --根据Oracle数据库scott模式下的emp表和dept表,完成下列操作。--(1)查询20号部门的所有员工信息select*fromempwheredeptno=20;--(2)查询所......
  • Oracle 创建表 练习题
     a)      建立下列教学管理用的数据表。注意,表名和字段名都是英文。学生表(student)字段名称数据类型约束学号S_NOCHAR(6)主键姓名......
  • Oracle 练习作业10.1-1-2
    --一、现有学生表student,班级表classInfo,表结构如下:--student表:sid学号,sname姓名,sex性别,birthday生日,age入学年龄,smoney缴费,cid班级ID--classInfo表:班级编......
  • Oracle注册表修改 乱码编码
    HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0"NLS_LANG"值改为"SIMPLIFIEDCHINESE_CHINA.ZHS16GBK"AMERICAN.AL32UTF8乱码更改o......
  • Oracle笔记:循环及游标
    循环及退出循环:--while--初值while条件loop循环体;循环变量的变化;endloop;--breakif条件thenexit;endif;--continue<<label>>....if条件thengotolabel;end......
  • Oracle自增序列
     SQLServer中数据库可以自增字段,但是Oracle中没有这个选项,实际应用中我们可以使用序列(Sequence)实现想要的功能。创建Sequence语法如下:CREATE......
  • Oracle创建用户和授权
    在OracleXE中创建scott用户1、打开SQL*Plus,以sys用户登录数据库connect/assysdba2、依次执行下面命令--DROPUSERscottCASCADE;CRE......
  • 在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别
    【在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别】1.CHAR(size)和VARCHAR(size)的区别   CHAR为定长的字段,最大长度为2K字节......
  • Oracle-1 / Oracle及PlsqlDeveloper的设置
    1、启动监听器与服务器我的电脑->管理->服务...保证“...listener...”和“...service...”两个服务开启2、客户端软件设置tools->preference->connection->Or......
  • Oracle内置角色connect与resource的权限
    首先用一个命令赋予user用户connect角色和resource角色: grantconnect,resourcetouser; 运行成功后用户包括的权限: CONNECT角色:--是授予最......