• PL/SQL 上机练习(二)


    函数:
    1.

    函数查看字符串中共包含几个某特殊字符,如'A**B*CEDF'中包含几个‘*’

    2.
    函数把员工表中不同的工作连接成一个字符串

    3.
    函数计算个人所得税,工资,薪金所得减3500,
    含税级距 税率(%) 速除数
    不超过1500 3 0
    超过1500到4500 10 105
    超过4500 到9000 20 555
    超过9000 到35000 25 1005

    --1
    create or replace function special_char   
        (c  in varchar2,v in varchar2)    
        return  number
    is  
        s_num  number;  
    begin
         
         s_num:=length(c)-length(replace(c,v,''));
        return(s_num);  
    end;  
    
    declare 
    num number;
    begin 
    num := special_char('AA****AA','*'); 
    dbms_output.put_line(num);
    end;
    
    --2
    create or replace function all_work
    return varchar2
     is
      wname varchar2(100) ;
    begin
         
      select wm_concat(job)
      into wname
      from (select distinct job from emp);
      return(wname);
    end all_work;
    
    declare 
    wname varchar(100);
    begin
    wname:=all_work();
    dbms_output.put_line(wname);
    end;
    
    --3
    create or replace function tax(p_empno in emp.empno%type) 
    return  number is
      t number ;
    begin
      select sal+nvl(comm,0)-3500 
      into t
      from emp
      where empno = p_empno;
      if t<0 then
      t:=0;
      ELSIF t<1500 THEN
      t:=t*0.03;
      ELSIF t<4500 THEN
      t:=t*0.1-105;
      ELSIF t<9000 THEN
      t:=t*0.2-555;
      ELSIF t<35000 THEN
      t:=t*0.25-1005;
      end if;
      return(t);
    end tax;
    
    declare 
    t number;
    begin
    t:=tax(7839);
    dbms_output.put_line(t);
    end;

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

  • 相关阅读:
    将数据导入PostGIS
    图层管理
    CentIOS PHP 扩展库
    js 笔记 数组(对象)
    JSP 中的 Request 和 Response 对象
    ubuntu 安装 LAMP
    html 学习笔记
    Struts Ajax Json
    Servlet 笔记
    PHP+MYSQL 出现乱码的解决方法
  • 原文地址:https://www.cnblogs.com/zhaoGavin/p/8870007.html
Copyright © 2020-2023  润新知