一、思路:首先判断这个查询的是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;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了