《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...