在oracle加紧乘除,Oracle课程中的 PL与SQL编程基础练习题

1、输出九九乘法表

declare

i int;

j int;

begin

for i in 1..9 loop

for j in 1..i loop

dbms_output.put(i||'*'||j||'='||(i*j)||' ');

end loop;

dbms_output.put_line(' ');

end loop;

end;

2、输出名为SMITH的雇员的薪水和职位

declare

v_name emp1.ename%type:='&name';

v_emp emp1%rowtype;

begin

select sal,job into v_emp.sal,v_emp.job from emp where ename=upper(v_name);

dbms_output.put_line('名字为:'||v_name||' 薪水为:'||v_emp.sal||' 工作岗位为:'||v_emp.job);

end;

3、接收部门编号,输出部门名和地理位置(DEPT表)

declare

v_no dept1.deptno%type:='&deptno';

v_dept dept1%rowtype;

begin

select DNAME,loc into v_dept.DNAME,v_dept.loc from dept where deptno=v_no;

dbms_output.put_line('部门编号为:'||v_no||' 部门名称为:'||v_dept.dname||' 部门地理位置为:'||v_dept.loc);

end;

4、接收雇员号,输出该雇员的工资和提成,没有佣金的用0替代。(用%type实现)

declare

v_no emp1.empno%type:=&no;

v_sal emp1.sal%type;

v_comm http://www.doczj.com/doc/6f32ba224b73f242336c5f5c.htmlm%type;

begin

select sal,nvl(comm,0) into v_sal,v_comm from emp1 where empno=v_no;

dbms_output.put_line('编号为:'||v_no||' 工资'||v_sal||' 提成'||v_comm);

end;

5、接收雇员号,输出该雇员的所有信息,没有佣金的用0替代。(用%rowtype实现)

declare

v_no emp1.empno%type:=&no;

v_emp emp1%rowtype;

begin

select ename,job,mgr,hiredate, sal,nvl(comm,0),deptno into v_emp.ename,v_emp.job,v_emp.mgr,v_emp.hiredate, v_emp.sal,v_http://www.doczj.com/doc/6f32ba224b73f242336c5f5c.htmlm,v_emp.deptno from emp1 where empno=v_no;

dbms_output.put_line('编号为:'||v_no||' 姓名为:'||v_emp.ename||' 工作岗位:'||v_emp.job||' 入职日期:'||' 上司编号:'||v_emp.mgr||v_emp.hiredate||' 工资'||v_emp.sal||' 提成'||v_http://www.doczj.com/doc/6f32ba224b73f242336c5f5c.htmlm||' 部门编号'||v_emp.deptno);

end;

6、接收一个雇员名或雇员编号,判断他的job,根据job不同,为他增加相应的sal(用if-elsif实现,不要改动到基表,创建一个emp1表与emp表一摸一样)

clerk +500

salesman +1000

analyst +1500

otherwise+2000

//接收故意编号 繁杂写法

declare

v_no emp1.empno%TYPE :=&empno;

v_job emp1.job%TYPE;

v_sal emp1.sal%TYPE;

v_comment varchar2(26);

begin

select job,sal into v_job,v_sal from emp1 where empno=v_no;

if v_job='CLERK' then

v_sal:=v_sal+500;

v_comment:=v_job;

update emp1 set sal=v_sal where empno=v_no;

elsif v_job='SALESMAN' then

v_comment:=v_job;

v_sal:=v_sal+1000;

update emp1 set sal=v_sal where empno=v_no;

elsif v_job='ANALYST' then

v_comment:=v_job;

v_sal:=v_sal+1500;

update emp1 set sal=v_sal where empno=v_no;

elsif v_job='OTHERWISE' then

v_comment:=v_job;

v_sal:=v_sal+2000;

update emp1 set sal=v_sal where empno=v_no;

end if;

dbms_output.put_line('职位为:'||v_comment||' 薪水'||v_sal||' 修改成功!!!!');

end;

//接收雇员编号 简易

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值