Oracle作业四答案

发布 2022-07-02 13:16:28 阅读 8846

《oracle数据库》作业四答案。

pl/sql编程。

1.用pl/sql进行程序设计完成以下要求:

定义一个求圆的面积的函数(圆的面积)

利用select语句进行函数的调用。

create or replace function find_area

(r in number)

--参数可定义为in

return number

asvarea number;

beginvarea :=3.1415926 *r*r;

return varea;

end;-调用函数。

select find_area (10)area from dual;

4.用pl/sql进行程序设计完成以下要求:

定义一个求圆的面积的过程。

定义一个pl/sql块调用该过程。

create or replace procedure get_area_sub

(r in number, varea out number)

---参数可定义为in,out,in out

---传入长,宽求面积。

asbegin

varea :=3.1415926*r*r;

end;-调用过程:

set serveroutput on

declare

a number:=0;

b number:=10;

beginget_area_sub(b,a);

--在plsql中直接用过程函数名调用存储过程。

--a取得输出参数的值。

dbms_'area is :'a);

end;6. 按照要求回答问题并完善语句。

create table parts

(id number(38),description varchar2(250) not null,unitprice number not null,onhand number(38) not null,reorder varchar2(40) not null

*上面语句创建表的表名是 parts该表创建了 5个字段,每个字段的类型是数值、变长字符串、数值、数值和变长字符串4分)

insert into parts

values (1,'fax machine',299,277,50);

insert into parts

values (2,'copy machine',4895,143,25);

insert into parts

values (3,'laptop pc',2100,7631,1000);

insert into parts

values (4,'desktop pc',1200,5903,1000);

insert into parts

values (5,'scanner',99,490,200);

commit;

*该表有5 条记录?*/

*下面语句是一个匿名plsql块,完成向表中插入一条新记录的功能*/

declare

*下面两条语句的含义声明了两个变量newid和newdesc,并且分别赋初值。

newid number :=6;

newdesc varchar2(250) :mouse';

begininsert into parts

values (newid,newdesc,49,1200,500);

end;7. 按照要求回答问题并完善语句。

create table stock

symbol varchar2(50),price number(6,2));

*下面两条语句的含义: 向stock表中插入两条记录。

insert into stock values('ibm',188.88);

insert into stock values('orcl',100.88);

declare

* 下面三条语句的含义声明两三个记录类型变量,这三个变量和上面创建的stock表结构一致。

stock_info1 stock%rowtype;

stock_info2 stock%rowtype;

stock_info3 stock%rowtype;

begin-下面语句含义:取得上面创建的表中相应字段放入记录。

select symbol,price

into stock_

from stock

where symbol ='orcl';

-下面语句含义:表中对应记录直接放入记录中。

selectinto stock_info2 from stock

where symbol ='orcl';

*下面语句的含义将记录stock_info2中的内容赋给记录stock_info3,并且stock_info3的symbol字段的值为“oracle

stock_info3 :=stock_info2;

stock_'oracle';

*下面三条语句的含义: 分别输出三个记录中各个字段的值。

dbms_'stock_info1 :'stock_ |stock_

dbms_'stock_info2 :'stock_ |stock_

dbms_'stock_info3 :'stock_ |stock_

end;输出结果:

stock_info1:orcl 100.88

stock_info2:orcl 100.88

stock_info3:oracle 100.88

8. 按照要求回答问题并完善语句。

*下面语句创建emp表,该表包含5个字段,empno表示“雇员编号”,ename表示“姓名”,sal表示“薪水”,deptno表示“部门编号”,comm表示“补助”*/

create table emp

empno varchar2(10),ename varchar2(10),sal number(6,2),deptno number(3),comm number(6,2));

insert into emp values ('a','tom',100.11,10,null);

insert into emp values ('b','mike',200.11,2,null);

insert into emp values ('c','li',3300.11,2,null);

commit;

declare

cursor c_emp is

select ename,sal

from emp

order by ename;

--定义游标。

v_tot_sal number (10,2);

beginv_tot_sal :=0;

--游标for循环,求出雇员的工资总数。

for r_emp in c_emp loop

dbms_ (name:' r_ |salary:' r_

v_tot_sal :=v_tot_sal +r_

end loop;

dbms_ (total salary is'||v_tot_sal);end;

如果雇员补助不是0,则在原来的基础之上增加100元;如果补助为0或null时,则设置其补助为200元。

declare

v_comm number(6,2);

beginselect comm. into v_comm from emp where empno=&no;

if v_comm<>0 then

update emp set comm.=v_comm+100 where empno=&no;

elseupdate emp set comm.=200 where empno=&no;

end if;

Oracle作业三答案

5.oracle支持哪几种类型的物理文件备份?简单描述这几种备份方式?脱机备份。该方式是物理文件备份方式,既拷贝构成数据库的文件而不管其逻辑内容如何。使用的是操作系统的文件备份命令。当数据库已经正常关闭时使用脱机备份。需要备份的文件 所有的数据文件,所有的控制文件,所有联机重做日志,文件 可选 联机...

Oracle实验四答案

select initcap ename from emp 显示正好为5个字符的员工姓名。select ename from emp where length ename 5 显示不带有r的员工姓名。select from emp where ename not like r 显示所有员工的前三个字...

Oracle答案

已知学生表xs有学号 姓名 毕业院校 成绩 cj 等字段,请写一个sql语句实现按学号末两位数分组显示。结果显示如下 分组号学号姓名。0 20100881203 周荣通。0 20100881206 游连桦。0 20100881209 陈艳。0 20100881212 叶荣林。0 2010088121...