-
--以下内容经测试有效 DECLARE --声明游标 CURSOR C_EMP IS SELECT EMPNO,SAL FROM NEW_EMP ORDER BY SAL; --声明两个接收游标值的变量 P_SAL EMP.SAL%TYPE; P_EMPNO EMP.EMPNO%TYPE; --声明人数的变量 COUNTEMP NUMBER:=0; --声明涨工资后的变量,及最后输出工资结果的变量(工资结果要在提交之后重新赋值一次才准确) SUMSAL NUMBER; BEGIN SELECT SUM(SAL) INTO SUMSAL FROM NEW_EMP; OPEN C_EMP; LOOP --将游标的值赋值给变量 FETCH C_EMP INTO P_EMPNO,P_SAL ; --游标没有下一个的时候退出 EXIT WHEN C_EMP%NOTFOUND; --先把涨后的工资计算出来,然后在判断工资是否大于50000 SUMSAL := SUMSAL+P_SAL*0.1; --涨后工资大于50000过后不执行update语句 EXIT WHEN SUMSAL > 50000 ; --执行涨工资update语句 UPDATE NEW_EMP SET SAL = SAL*1.1 WHERE EMPNO = P_EMPNO; --没涨一次增加一次人数 COUNTEMP := COUNTEMP+1; END LOOP; CLOSE C_EMP; COMMIT; --最后在提交之后将总工资赋值给变量,因为在提交之前的话总工资是涨后的工资,只有在提交后才是没涨时的工资 SELECT SUM(SAL) INTO SUMSAL FROM NEW_EMP; --打印并输出 DBMS_OUTPUT.PUT_LINE('涨工资人数:'||COUNTEMP||';涨后的总工资:'||SUMSAL); END;查看全部
-
insert into teacher values(9611,'TURNER','PROFESSOR','8-Sep-2018',6000,1000,9468,40); insert into teacher values(9612,'ADAMS','ASSOCIATE PROFESSOR','12-Jan-17',4800,800,9611,40); insert into teacher values(9613,'JAMES','LECTURER','3-Dec-19',2800,200,9611,40); insert into teacher values(2031,'FORD','PROFESSOR','3-Dec-18',5500,null,9468,50); insert into teacher values(2032,'MILLER','ASSOCIATE PROFESSOR','23-Jan-2018',4300,null,2031,50); insert into teacher values(2033,'MIGEAL','LECTURER','23-Jan-2019',2900,null,2031,50); insert into teacher values(2034,'PEGGY','LECTURER','23-Jan-2020',2800,null,2031,50);查看全部
-
oracle sql developer linux的安装.sh的文件 用户名、口令:scott/tiger 如果以sys登录,角色要选成SYSDBA 主机名是服务器的IP地址,端口是1521; SID是数据库名字,orcl //打开行号:工具-首选项-代码编辑器-行装订线-显示行数 //连接mysql:工具-首选项-第三方JDBC驱动程序-添加条目-mysql...-bin.jar查看全部
-
--成绩统计sql 片段3 --判断成绩的范围 if pgrade < 60 then count1 := count1+1; elsif pgrade >= 60 and pgrade < 85 then count2:=count2+1; else count3 := count3+1; end if; end loop; close cgrade; --保存当前的结果 insert into msg1 values(pcourseName,pdno,count1,count2,count3,avggreade); end loop; --关闭系的光标 close cdept; --事务提交 commit; dbms_output.put_line('统计完成'); end;查看全部
-
1、光标的属性 %found %notfound declare --定义一个光标 cursor cinfo is select i.member_id,i.account_fee from account_info i where i.member_id in (82465,82466,30989,33458); --为光标定义变量 memberid account_info.member_id%type; accountfee account_info.account_fee%type; begin --打开光标 open cinfo; loop --取一条记录 fetch cinfo into memberid,accountfee; --没有取到记录循环退出 exit when cinfo%notfound; dbms_output.put_line(memberid||'的余额是'||accountfee); end loop; end; /查看全部
-
loop 循环 exit条件成立退出循环,不成立执行循环体 declare pnum number :=1; begin loop exit when pnum >10; dbms_output.put_line(pnum); pnum := pnum+1; end loop; end; /查看全部
-
引用型变量 --set serveroutput on declare --定义引用型变量:查询并打印7839的姓名和薪水 --pename varchar2(20); --psal number; pename emp.ename%type; psal emp.sal%type; begin --得到7839的姓名和薪水 select ename,sal into pename,psal from emp where empno=7839; //这里使用into将ename,sal的值赋给pename,psal --打印姓名和薪水 dbms_output.put_line(pename||"的薪水是"||psal); end; /查看全部
-
只要有一口气在,就要学习,学习使人进步、今天你学习了吗?查看全部
-
老师 您好 您留得那道题能给我们发一下答案吗 谢谢查看全部
-
能不操作数据库就尽量不要操作数据库!这样执行效率更加高!查看全部
-
光标就是一个结果集(Result Set)查看全部
-
set serveroutput on查看全部
-
lll查看全部
-
方法的撒查看全部
-
匿名块
--引用型变量 DECLARE v_name emp.ename%type; v_sal emp.sal%type; BEGIN select ename ,sal into v_name ,v_sal from emp where empno=2223 ; dbms_output.putline(v_name||'的薪资是:'||v_sal); END; / --记录型变量 DECLARE v_emp_rec emp%rowtype; --记录一行数据 BEGIN select * into v_emp_rec from emp where empno=8962 ; dbms_output.putline(v_emp_rec.ename||'的薪资是:'||v_emp_rec.sal); END; /
查看全部
举报
0/150
提交
取消