闫平平
写代码也要酷酷的!

导航

 

一、思路:首先判断这个查询的是emp表,需要接收值,声明一个rowtype类型接收数据即可,第二是,存在exception,需要处理,exception中有两种异常,分别处理即可,分别输出即可。

二、在增删改之后加上commit提交事物。

三、具体实现

 

 1 declare
 2 -- 声明rowtype类型接收数据即可
 3 v_emp emp%rowtype;
 4 
 5 begin
 6   -- 查询员工中姓为“SMITH”
 7   select * into v_emp from emp where ename='SMITH';
 8   dbms_output.put_line('工号:'||v_emp.empno||',姓名:'||v_emp.ename||',工资:'||v_emp.sal||',部门号:'||v_emp.deptno);  
 9     
10 exception
11   -- 如果该员工不存在,则插入一条新记录
12   when no_data_found then
13   insert into emp(empno, ename, sal,  hiredate,deptno)  values(2001, 'smith',7500, to_date('2018-10-5', 'yyyy-mm-dd'), 50);
14   commit;
15   -- 如果查询员工数据不止两条,则循环输出
16   when too_many_rows then
17       for v_emp in (select * from emp where ename='Smith') loop
18       dbms_output.put_line('工号:'||v_emp.empno||',姓名:'||v_emp.ename||',工资:'||v_emp.sal||',部门号:'||v_emp.deptno);
19     
20   end loop;   
21 end;

 

posted on 2019-05-08 21:12  写代码也要酷酷的  阅读(1946)  评论(0编辑  收藏  举报