Oracle 数据库 练习题5
来源:互联网 发布:wow大脚插件for mac 编辑:程序博客网 时间:2024/06/05 05:04
一、完成以下PL/SQL
1. 求半径2米,高3米的圆柱体体积。
2. 求字符串‘abcdefg’的长度。
3. 显示pubs数据库中所有作家的au_lname的开头两个字母,大写显示。(字符函数)
4. 取字符串‘abcdefg’的第2到第5个字母。(字符函数)
5. 计算2001年9月11日到今天已经多少天了。(日期函数)
6. 查询emp表,找出编号为7395的记录,如果名字为SCOTT显示“找到了”否则显示“没找到”。(if语句)
7.编写一个程序,用以接受用户输入的数字。将该数左右反转,然后显示反转后的数
提示:使用循环控制结构.
8.编写一个程序,在emp表中根据empno查询职员信息。如果代码引发NO_DATA_FOUND异常,则显示一则消息.
9.编写一个程序,用以接受用户输入的DEPTCODE,并从employee表中检索该雇员的EMPNO。如果代码引发TOO_MANY_ROWS异常,则显示消息“返回多行”.
--1.求半径2米,高3米的圆柱体体积。DECLARE V NUMBER(4):=3*3.14*2*2;BEGINdbms_output.put_line(V);END;--2.求字符串‘abcdefg’的长度。DECLAREV NUMBER(4);BEGINSELECT "LENGTH"('ABCDEFG') INTO V FROM DUAL;dbms_output.put_line(V);END;--3.显示pubs数据库中所有作家的au_lname的开头两个字母,大写显示。(字符函数)emp表里的所有员工名字改成第一个字母大写其他小写的形式declarename emp.ename%type;maxv number;i number :=1;rr number;beginselect count(*) into maxv from emp ;for i in 1..maxvloopselect m.v_name into name from(select rownum rn ,INITCAP(ENAME) v_name from emp ) m where m.rn=i;dbms_output.put_line(name);end loop;end;4.取字符串‘abcdefg’的第2到第5个字母。(字符函数)DECLAREV VARCHAR2(20);BEGINSELECT "SUBSTR"('ABCDEFG',2,4) INTO V FROM DUAL;dbms_output.put_line(V);END;5.计算2001年9月11日到今天已经多少天了。(日期函数)DECLAREV NUMBER(20);BEGINSELECT SYSDATE-TO_DATE('2001-09-11','yyyy-mm-dd') INTO V FROM DUAL;dbms_output.put_line(V);END;6. 查询emp表,找出编号为7395的记录,如果名字为SCOTT 显示“找到了”否则显示“没找到”。(if语句)第一种方法:先查名字DECLAREV EMP.EMPNO%type;BEGINSELECT EMPNO INTO V FROM EMP WHERE ENAME='SCOTT';IF(V=7395) THENdbms_output.put_line('找到了');ELSEdbms_output.put_line('没找到');END IF;END;第二种方法:报异常DECLAREV EMP.EMPNO%type;BEGINSELECT EMPNO INTO V FROM EMP WHERE ENAME='SCOTT';IF(V=7395) THENdbms_output.put_line('找到了');ELSEdbms_output.put_line('没找到');END IF;EXCEPTIONWHEN NO_DATA_FOUND THENdbms_output.put_line('没找到');END;7.编写一个程序,用以接受用户输入的数字。将该数左右反转,然后显示反转后的数提示:使用循环控制结构.DECLAREV VARCHAR2(20);M VARCHAR2(20);BEGINM:='&NUM';SELECT REVERSE(M) INTO V FROM DUAL;dbms_output.put_line(V);END;8.编写一个程序,在emp表中根据empno查询职员信息。如果代码引发NO_DATA_FOUND异常,则显示一则消息.DECLAREV EMP%ROWTYPE;BEGINSELECT * INTOV FROM EMPWHERE EMPNO=7369;--'&EMPNO'; dbms_output.put_line('编号:' || V.empno || ' 姓名:' || V.ename || ' 职位:' || V.job || ' 上级领导编号:' || V.mgr || ' 雇佣日期:' || V.hiredate || ' 工资:' ||V.sal || ' 奖金:' || V.comm || ' 部门:' || V.deptno);EXCEPTIONWHEN NO_DATA_FOUND THENdbms_output.put_line('数据异常');END;9.编写一个程序,用以接受用户输入的DEPTCODE,并从employee表中检索该雇员的EMPNO。如果代码引发TOO_MANY_ROWS异常,则显示消息“返回多行”.DECLAREV EMP.EMPNO%TYPE;M VARCHAR2(20);BEGINSELECT EMPNO INTO V FROM EMPWHERE DEPTNO='&DEPTNO';EXCEPTIONWHEN TOO_MANY_ROWS THENdbms_output.put_line('返回多行');END;
注:以上答案是自己做得,结果正确,但是并不是按照正确答案写的。
阅读全文
0 0
- Oracle 数据库 练习题5
- Oracle数据库面试练习题
- Oracle数据库面试练习题
- oracle 数据库 练习题2
- oracle 数据库 练习题 3
- oracle 数据库 练习题4
- Oracle 数据库 练习题6
- Oracle 数据库 练习题 T7
- Oracle 数据库 练习题 T8
- oracle数据库经典练习题及答案
- 史上最难oracle数据库练习题(附答案)
- oracle 练习题
- Oracle练习题
- oracle练习题
- Oracle练习题
- oracle 练习题
- oracle练习题
- oracle练习题
- 外观模式
- 文章标题
- ccf 最大波动
- CenterOS 设置静态IP
- docker之ifconfig安装-yellowcong
- Oracle 数据库 练习题5
- java基础总结三(引用类型使用格式、if语句、循环语句)
- Android中onTouch与onClick事件的关系
- SpringMVC札集(06)——转发和重定向
- CentOs6.8系统部署SVN版本管理
- 如何在Java 8中愉快地处理日期和时间
- Hdu1996汉诺塔VI
- 准备入职了,写点东西
- AMS Hook