PL/SQL 上機練習(二)
阿新 • • 發佈:2018-04-17
tinc ace end from func fun gin spa PE
函數:
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 createor 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;
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
PL/SQL 上機練習(二)