加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【雪野实训记录】Oracle数据库 T5作业——使用 PL/SQL

发布时间:2020-12-12 14:36:01 所属栏目:百科 来源:网络整理
导读:--1. 求半径2米,高3米的圆柱体体积。 declare r number:=2; h number:=3; pi number:=3.14; area number; begin area:=pi*r*r*h; dbms_output.put_line('半径2米,高3米的圆柱体体积='||area); end; --2. 求字符串‘abcdefg’的长度。 declare len number;
--1. 求半径2米,高3米的圆柱体体积。 declare r number:=2; h number:=3; pi number:=3.14; area number; begin area:=pi*r*r*h; dbms_output.put_line('半径2米,高3米的圆柱体体积='||area); end; --2. 求字符串‘abcdefg’的长度。 declare len number; begin len := length('abcdefg'); dbms_output.put_line('字符串abcdefg的长度='||len); end; --3. 显示emp数据库中所有所有员工名字改成第一个字母大写其他小写的形式(字符函数) declare name emp.ename%type; maxv number; i number :=1; rr number; begin select count(*) into maxv from emp ; for i in 1..maxv loop select m.v_name into name from (select rownum rn,NLS_INITCAP(substr(ename,1,2)) v_name from emp ) m where m.rn=i; dbms_output.put_line(name); end loop; end; --4. 取字符串‘abcdefg’的第2到第5个字母。(字符函数) declare v_string varchar2(10); begin v_string := substr('abcdefg',2,4); dbms_output.put_line(v_string); end; --5. 计算2001年9月11日到今天已经多少天了。(日期函数) declare day number; begin day := trunc(sysdate - to_date('2001-09-11','yyyy-mm-dd')); dbms_output.put_line('距离2001年9月11日到今天'||day||'天'); end; --6. 查询emp表,找出编号为7395的记录,如果名字为SCOTT 显示“找到了”否则显示“没找到”。(if语句) declare scottinfo emp%rowtype; begin select * into scottinfo from emp where empno=7395; if(scottinfo.ename = 'SCOTT') then dbms_output.put_line('找到了'); else dbms_output.put_line('没找到'); end if; exception when no_data_found then dbms_output.put_line('没找到'); end; --7. 编写一个程序,用以接受用户输入的数字。将该数左右反转,然后显示反转后的数 提示:使用循环控制结构. declare v_char1 varchar2(100); v_char2 varchar2(100); v_c char(1); begin v_char1 :='159263'; dbms_output.put_line('输入的数据为:'||v_char1); for i in reverse 1..length(v_char1) loop v_c := substr(v_char1,i,1); v_char2 := v_char2 ||v_c; end loop; dbms_output.put_line('反转后的数字为:'||v_char2); end; --8. 编写一个程序,在emp表中根据empno查询职员信息。如果代码引发NO_DATA_FOUND异常,则显示一则消息. declare empinfo emp%rowtype; begin select * into empinfo from emp where empno = '7666'; dbms_output.put_line(empinfo.empno||empinfo.ename); exception when no_data_found then dbms_output.put_line('没有该职员'); end; --9. 编写一个程序,用以接受用户输入的DEPTCODE,并从employee表中检索该雇员的EMPNO。如果代码引发TOO_MANY_ROWS异常,则显示消息“返回多行”. create view employee as select e."JOB",e.sal,e.empno,e.ename,e.mgr,e.hiredate,e.comm,d.deptno,d.dname,loc from emp e,dept d; declare A_SCOTT employee.empno%type; begin select empno into A_SCOTT from employee where deptno = 20; exception when too_many_rows then dbms_output.put_line('返回多行'); end;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读