zoukankan      html  css  js  c++  java
  • oracle中plsql练习题----查询姓为“SMITH”的员工信息,并输出其员工号、姓名、工资、部门号。 – –如果该员工不存在,则插入一条新记录,员工号为2012,员工姓名为“Smith”,工资为7500元,入职日期为“2002年3月5日”,部门号为50。 – –如果存在多个名“Smith”的员工,则输出所有名为“Smith”的员工号、姓名、工资、入职日期、部门号L。

    一、思路:首先判断这个查询的是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;
  • 相关阅读:
    golang 中 sync包的 WaitGroup
    Go_20: Golang 中 time 包的使用
    mysql 同步数据到 ElasticSearch 的方案
    mysql 对应 binlog 查看
    python3.6爬虫总结-01
    Golang 之协程详解
    golang私服搭建
    Ubuntu vim设置
    密码校验规则
    golang密码校验
  • 原文地址:https://www.cnblogs.com/yanpingping/p/10834708.html
Copyright © 2011-2022 走看看