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;
//接收雇员编号 简易