pl/sql学习过程中的代码,实现其功能,全面,后续等更新

目录

最简单的pl/sql块

 实现1-100之间的随机数

 定义变量实现随机数,更规范的写

 查询工号为7369的员工姓名和工资

 运用%type实现调用变量类型

 运用%ROWTYPE实现功能

 运用Record 实现查询效果

求圆的面积

查找某个部门员工的平均薪水和人数。部门号使用替代变量

 查找某个部门员工的平均薪水和人数。部门号使用替代变量,应用记录类型变量完成此题

 如果希望输出的薪水以某种格式显示,比如前面加上美元符号,有两位小数点。应该如何实现?

 执行DDL命令的方法是使用 execute immediate ,删除表

 执行DDL命令的方法是使用 execute immediate  ,创建表

 输入两个数,让小的在前面 ——if then ……else …… end if;

接收用户的输入,要求长度不少于6个字符,如果输入正确,则输出用户输入的信息。否则,显示“输入长度不够

 输入字母,分别输出相对应的级别信息 case when 判断 then  输出语句; when 判断 then  输出语句 ;else end case;

根据员工编号对emp表修改员工的奖金,当员工原本有奖金,则再增加100元,如果原来没有奖金,则抛出异常,说明奖金为空

 表emp有外键关联表dept的主键,当部门10有员工时,不能删除部门10。如果我们做了这样的操作,就违反了约束条件

 三种计算1——10的方法。(for while )

 测试用户输入的日期是否是周末,(星期六或星期日)

 输入编号,判断如果职位是“analyst”,则薪水增加10%;否则增加5% 

删除多于空格


最简单的pl/sql块

 

 实现1-100之间的随机数

 

 定义变量实现随机数,更规范的写

 查询工号为7369的员工姓名和工资

 运用%type实现调用变量类型

 运用%ROWTYPE实现功能

 运用Record 实现查询效果

求圆的面积

查找某个部门员工的平均薪水和人数。部门号使用替代变量

 

 查找某个部门员工的平均薪水和人数。部门号使用替代变量,应用记录类型变量完成此题

 

 如果希望输出的薪水以某种格式显示,比如前面加上美元符号,有两位小数点。应该如何实现?

 

 执行DDL命令的方法是使用 execute immediate ,删除表

 执行DDL命令的方法是使用 execute immediate  ,创建表

 

 输入两个数,让小的在前面 ——if then ……else …… end if;

接收用户的输入,要求长度不少于6个字符,如果输入正确,则输出用户输入的信息。否则,显示“输入长度不够

 输入字母,分别输出相对应的级别信息 case when 判断 then  输出语句; when 判断 then  输出语句 ;else end case;

 

根据员工编号对emp表修改员工的奖金,当员工原本有奖金,则再增加100元,如果原来没有奖金,则抛出异常,说明奖金为空

 表emp有外键关联表dept的主键,当部门10有员工时,不能删除部门10。如果我们做了这样的操作,就违反了约束条件

set serveroutput on
declare
  myexception exception;
  pragma exception_init (myexception,-2292);
begin
  delete from dept where deptno=10;
  exception
  when myexception then
  dbms_output.put_line('10部门有员工,不能删除');
  when others then
  dbms_output.put_line('其他异常');
end;

 三种计算1——10的方法。(for while )

set serveroutput on
declare
  s number(4):=0;
begin
  for i in 1..10 loop
   s:=s+i;
  end loop;
  dbms_output.put_line(s);
end;
set serveroutput on
declare
  i number(4):=1;
  s number(4):=0;
begin
  while i<=10 loop
   s:=s+i;
   i:=i+1;
  end loop;
  dbms_output.put_line(s);
end;
set serveroutput on
declare
  i number(4):=1;
  s number(4):=0;
begin
 loop 
 exit when i>10;
   s:=s+i;
   i:=i+1;
  end loop;
  dbms_output.put_line(s);
end;

 测试用户输入的日期是否是周末,(星期六或星期日)

declare
  v_d varchar2(20):='&a';
  v_date date;
  v_day varchar2(10);
begin 
  v_date:=to_date(v_d,'yyyy-mm-dd');
  v_day:=to_char(v_date,'day');
  if v_day in('星期六','星期日') then
  dbms_output.put_line('是周末');
  else dbms_output.put_line('不是周末');
  end if;
end;

 输入编号,判断如果职位是“analyst”,则薪水增加10%;否则增加5% 

declare
 v_no number(10):=&a;
 v_job varchar2(10);
begin
select job into v_job from emp where empno=v_no;
if v_job='ANALYST' then
  update emp set sal=sal*1.1 where empno=v_no;
  else
   update emp set sal=sal*1.05 where empno=v_no;
end if;
end;

删除多于空格

--删除多余的空格
declare
  str varchar2(20):='  wd   wq  ';
  len number(3);
  str1 varchar2(20);
  str2 varchar2(20);
  i number(2):=1;
  str3 varchar2(20);
begin
  str1:=trim(str);
  len:=length(str1);
  while i<len+1 
  loop
    str2:=substr(str1,i,1);
    if length(trim(str2))!=0 then
    str3:=str3||str2;
    end if;
    i:=i+1;
    end loop;
    dbms_output.put_line(str3);
end;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值