oracle第四次作业43991.pdf

上传人:得** 文档编号:79366981 上传时间:2023-03-21 格式:PDF 页数:9 大小:213.74KB
返回 下载 相关 举报
oracle第四次作业43991.pdf_第1页
第1页 / 共9页
oracle第四次作业43991.pdf_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《oracle第四次作业43991.pdf》由会员分享,可在线阅读,更多相关《oracle第四次作业43991.pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 Oracle数据库基础 实验4 PL/SQL块结构,条件、循环语句的使用 【实验学时】2学时 【实验目的】1.学习匿名PL/SQL块的基本结构。2.了解PL/SQL的基本数据类型。3.掌握PL/SQL中变量和常量的定义方法。4.学会在PL/SQL程序中使用复合数据类型:记录和集合。5.学会使用selectinto语句返回一行数据。6.练习在PL/SQL中使用DML语句和动态SQL语句。7.熟练掌握PL/SQL中的选择和循环语句的使用。【实验内容】1.定义一个 PL/SQL 块,向屏幕输出 hello world!。1 declare 2 begin 3 dbms_output.put_lin

2、e(hello world!);4*end;SQL/hello world!PL/SQL 过程已成功完成。2.定义一个 PL/SQL 块,将输入的字符串中大小写相互转换后向屏幕输出。例如,输入 abDCe,输出 ABdcE declare str1 varchar2(20):=&str1;str2 varchar2(2);str3 varchar2(20);len number(10);leng number(10);begin len:=1;leng:=length(str1);while len=a and str2=A and str2=Z then str3:=str3|lower(s

3、tr2);end if;len:=len+1;end loop;dbms_output.put_line(str3);end;/1 declare 2 str1 varchar2(20):=&str1;3 str2 varchar2(2);4 str3 varchar2(20);5 len number(10);6 leng number(10);7 begin 8 len:=1;9 leng:=length(str1);10 while len=a and str2=A and str2/输入 str1 的值:dfaERERTdfdEdf 原值 2:str1 varchar2(20):=&s

4、tr1;新值 2:str1 varchar2(20):=dfaERERTdfdEdf;DFAerertDFDeDF PL/SQL 过程已成功完成。3.定义一个 PL/SQL 块,完成如下功能:输入一个 3 位数,输出其各个数位上的数字。declare abc number(20):=&abc;a number(4);b number(4);c number(4);begin a:=floor(abc/100);b:=mod(floor(abc/10),10);c:=mod(abc,10);dbms_output.put_line(a);dbms_output.put_line(b);dbms_

5、output.put_line(c);end;1 declare 2 abc number(20):=&abc;3 a number(4);4 b number(4);5 c number(4);6 begin 7 a:=floor(abc/100);8 b:=mod(floor(abc/10),10);9 c:=mod(abc,10);10 dbms_output.put_line(a);11 dbms_output.put_line(b);12 dbms_output.put_line(c);13*end;SQL/输入 abc 的值:346 原值 2:abc number(20):=&ab

6、c;新值 2:abc number(20):=346;3 4 6 PL/SQL 过程已成功完成。4.编写 PL/SQL 程序,程序的功能是:输入员工号,输出该员工经理的姓名。1 declare 2 v_empno emp.empno%type:=&v_emp;3 v_ename emp.ename%type;4 begin 5 select ename 6 into v_ename 7 from emp 8 where empno in(select mgr from emp where empno=v_empno);9 dbms_output.put_line(v_empno|manager

7、 is|v_ename);10*end;SQL/输入 v_emp 的值:7369 原值 2:v_empno emp.empno%type:=&v_emp;新值 2:v_empno emp.empno%type:=7369;7369 manager is FORD PL/SQL 过程已成功完成。SQL/输入 v_emp 的值:7566 原值 2:v_empno emp.empno%type:=&v_emp;新值 2:v_empno emp.empno%type:=7566;7566 manager is KING PL/SQL 过程已成功完成。5.编写 PL/SQL 程序,根据输入的员工号,若职

8、务是CLERK提高工资 1%。工作为CLERK 1 declare 2 v_empno emp.empno%type:=&v_emp;3 v_sal emp.sal%type;4 begin 5 select sal into v_sal from emp where empno=v_empno;6 dbms_output.put_line(old sal is|v_sal);7 update emp 8 set sal=sal*1.01 9 where job=CLERK and empno=v_empno;10 select sal into v_sal from emp where em

9、pno=v_empno;11 dbms_output.put_line(new sal is|v_sal);12*end;13 /输入 v_emp 的值:7934 原值 2:v_empno emp.empno%type:=&v_emp;新值 2:v_empno emp.empno%type:=7934;old sal is1300 new sal is1313 PL/SQL 过程已成功完成。工作不是CLERK 1 declare 2 v_empno emp.empno%type:=&v_emp;3 v_sal emp.sal%type;4 begin 5 select sal into v_s

10、al from emp where empno=v_empno;6 dbms_output.put_line(old sal is|v_sal);7 update emp 8 set sal=sal*1.01 9 where job=CLERK and empno=v_empno;10 select sal into v_sal from emp where empno=v_empno;11 dbms_output.put_line(new sal is|v_sal);12*end;13 /输入 v_emp 的值:7566 原值 2:v_empno emp.empno%type:=&v_emp

11、;新值 2:v_empno emp.empno%type:=7566;old sal is2975 new sal is2975 PL/SQL 过程已成功完成。6.编写 PL/SQL 程序,程序的功能是:输入员工号,如果该员工工龄在 20 年之上,工资提高 10%。1 declare 2 v_empno emp.empno%type:=&v_emp;3 v_sal emp.sal%type;4 v_age number(4,2);5 begin 6 select sal into v_sal from emp where empno=v_empno;7 dbms_output.put_line

12、(old sal is|v_sal);8 update emp 9 set sal=sal*1.1 10 where empno=v_empno and(sysdate-hiredate)/36520;11 select sal,(sysdate-hiredate)/365 age into v_sal,v_age from emp where empno=v_empno;12 dbms_output.put_line(work time is|v_age|new sal is|v_sal);13*end;SQL/输入 v_emp 的值:7844 原值 2:v_empno emp.empno%

13、type:=&v_emp;新值 2:v_empno emp.empno%type:=7844;old sal is1500 work time is 29.74 new sal is1650 PL/SQL 过程已成功完成。7.编写 PL/SQL 程序,根据输入的员工号,输出该员工所在的部门名。1 declare 2 v_empno emp.empno%type:=&v_emp;3 v_dname dept.dname%type;4 begin 5 select dname 6 into v_dname 7 from dept 8 where deptno in(select deptno fr

14、om emp where empno=v_empno);9 dbms_output.put_line(v_empno|is in|v_dname);10*end;SQL/输入 v_emp 的值:7369 原值 2:v_empno emp.empno%type:=&v_emp;新值 2:v_empno emp.empno%type:=7369;7369 is in RESEARCH PL/SQL 过程已成功完成。8.使用 index by 表复合数据类型,提取员工表 emp 中的员工姓名ename 和员工职位 job。1 declare 2 cursor c is select*from emp

15、;3 type table_emp_type is table of emp%rowtype index by binary_integer;4 table_emp table_emp_type;5 i binary_integer:=1;6 num number;7 begin 8 select count(empno)9 into num 10 from emp;11 dbms_output.put_line(num);12 open c;13 for i in 1.num loop 14 fetch c into table_emp(i);15 dbms_output.put_line(

16、table_emp(i).ename|,|table_emp(i).job);16 end loop;17*end;18 /14 SMITH,CLERK ALLEN,SALESMAN WARD,SALESMAN JONES,MANAGER MARTIN,SALESMAN BLAKE,MANAGER CLARK,MANAGER SCOTT,ANALYST KING,PRESIDENT TURNER,SALESMAN ADAMS,CLERK JAMES,CLERK FORD,ANALYST MILLER,CLERK PL/SQL 过程已成功完成。9.用动态 SQL 语句创建一个表格。(表结构自行设

17、计)1 declare 2 table_name varchar2(20):=&table_name;3 line1 varchar2(10):=&line1;4 datatype1 varchar2(20):=number;5 line2 varchar2(20):=&line2;6 datatype2 varchar2(20):=varchar2(3);7 str_sql varchar2(500);8 begin 9 str_sql:=create table|table_name|(|line1|datatype1|,|line2|dataty 10 dbms_output.put_l

18、ine(str_sql);11 execute immediate str_sql;12*end;SQL/输入 table_name 的值:person 原值 2:table_name varchar2(20):=&table_name;新值 2:table_name varchar2(20):=person;输入 line1 的值:name 原值 3:line1 varchar2(10):=&line1;新值 3:line1 varchar2(10):=name;输入 line2 的值:id 原值 5:line2 varchar2(20):=&line2;新值 5:line2 varchar2(20):=id;create table person(name number,id varchar2(3)PL/SQL 过程已成功完成。SQL desc person 名称 是否为空?类型 -NAME NUMBER ID VARCHAR2(3)【实验要求】1、独自认真完成上述应用性实验的题目。2、在 规 定 时 间 内 将“实 验 内 容”填 写 实 验 报 告 并 提 交 至ftp:/172.16.94.8。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁