-
pl/sql访问数据库效率最高的语言。 在程序中直接调用,比在程序中重复访问数据库效率要高。查看全部
-
not found 属性查看全部
-
捕获意外查看全部
-
查询部门中员工姓名查看全部
-
loop end loop; if end if;查看全部
-
declare cursor cemp is select empno,sal from emp order by sal; pempno number := 0; psal emp.sal%type; count1 number :=0; totalsal number; begin select sum(sal) into totalsal from emp; open cemp; loop exit when totalsal>50000; fetch cemp into pempno,psal; exit when cemp%notfound; update emp set sal = sal*1.1 where empno = pempno; --修正 if totalsal+psal*0.1 > 50000 then totalsal := totalsal; count1:=count1; update emp set sal=sal/1.1 where empno = pempno; else totalsal := totalsal+psal*0.1; count1:=count1+1; end if; end loop; dbms_output.put_line('涨工资人数:'count1); dbms_output.put_line('涨工资总额:'totalsal); close cemp; end; /查看全部
-
光标取数,并退出光标查看全部
-
光标:查出所有员工姓名的集合 cursor c1 is select ename from emp;查看全部
-
循环(光标)可控,建议使用 loop exit when pnum > 10; dbms_output.put_line(pnum); pnum := pnum + 1; end loop;查看全部
-
记录型变量(数组): emp_rec emp%rowtype查看全部
-
引用型变量: my_name emp.ename%type查看全部
-
案例4:统计成绩查看全部
-
/* 案例2:涨工资问题,从最低工资的员工开始涨起,没人涨10%,工资总额不能超过50000,返回涨工资的人数和涨后的工资总额 分析: 1、用到的sql语句: select empno,sal from emp order by sal; select sum(sal) into totalsal from emp; 2、需要声明的变量: 工资总额:totalsal 涨工资人数:count 3、循环推出的条件: 工资总额>5W or 全部员工都涨完工资 */ declare cursor cemp is select empno,sal from emp order by sal; p_no emp.empno%type; p_sal emp.sal%type; countemp number:=0;--涨工资人数 totalsal emp.sal%type; begin --获取初始工资总额 select sum(sal) into totalsal from emp; open cemp; --判断当前工资总额是否大于5W if totalsal<50000 then loop fetch cemp into p_no,p_sal; exit when cemp%notfound; --获取当前员工涨工资后的工资总额 --如果工资总额超过5W直接退出循环 exit when (totalsal+p_sal*0.1)>50000; update emp set sal=sal*1.1 where empno=p_no; --涨工资人数加1 countemp:=countemp+1; end loop; end if; close cemp; commit; dbms_output.put_line('共有'countemp'人涨工资,工资总额为:'totalsal); end; /查看全部
-
--案例1:统计每年入职的员工人数,80,81,82,87年的 declare --定义一个游标存放所有员工的入职年份 cursor c_dates is select to_char(hiredate,'yyyy') from emp; p_hiredate varchar2(20); p_80num number :=0; p_81num number :=0; p_82num number :=0; p_87num number :=0; begin open c_dates; loop fetch c_dates into p_hiredate; exit when c_dates%notfound; if p_hiredate ='1980' then p_80num:=p_80num+1; elsif p_hiredate ='1981' then p_81num:=p_81num+1; elsif p_hiredate ='1982' then p_82num:=p_82num+1; elsif p_hiredate ='1987' then p_87num:=p_87num+1; end if; end loop; close c_dates; dbms_output.put_line('Total:'(p_80num+p_81num+p_82num+p_87num)); dbms_output.put_line('80入职的:'p_80num); dbms_output.put_line('81入职的:'p_81num); dbms_output.put_line('82入职的:'p_82num); dbms_output.put_line('87入职的:'p_87num); end; /查看全部
-
瀑布模型 1.需求分析 2.设计 2.1概要设计 2.2详细设计 3.编码coding 4.测试Testing 5.上线(部署)查看全部
举报
0/150
提交
取消