关♥生活,关注互联网。
《数据库(oracle 10g)开发技术》课程实验及参考答案
一、 实践目的
《数据库开发技术》课程之实验四
控制结构和嵌入式 SQL
1. 掌握 PL/SQL 程序设计的基本知识。
2. 掌握 PL/SQL 中控制结构的使用。具体包括:
选择结构(IF 语句和 CASE 语句);
循环结构(三种循环语句):
3. 掌握 PL/SQL 中 SELECT 语句和 DML 语句的正确使用方法。
二、 实践内容和要求
1. 通过 CASE 语句判断 7788 雇员的工资等级后输出,工资等级划分条件是:3000(含)以上为高,1500(含)
至 3000 为中,低于 1500 为低。
SET SERVEROUTPUT ON
DECLARE
v_sal NUMBER(5);
BEGIN
SELECT sal INTO v_sal FROM emp WHERE empno=7788;
CASE
WHEN v_sal>=3000 THEN DBMS_OUTPUT.PUT_LINE(‘工资等级:高’);
WHEN v_sal>=1500 THEN DBMS_OUTPUT.PUT_LINE(‘工资等级:中’);
ELSE DBMS_OUTPUT.PUT_LINE(‘工资等级:低’);
END CASE;
END;
执行结果为:
工资等级:高
PL/SQL 过程已成功完成。
2. 用 PL/SQL 的 FOR 循环输出以下实心三角形:
1 *
2 ***
3 *****
4 *******
5 *********
Set serveroutput on
BEGIN
FOR I IN 1..5 LOOP –采用 FOR 循环结构
DBMS_OUTPUT.PUT_LINE(to_char(I)||rpad(‘ ‘,8-I,’ ‘)||rpad(‘*’,2*I-1,’*’));
END LOOP;
END;
或者
DECLARE
String varchar2(20);
BEGIN
FOR I IN 1..5 LOOP –采用 FOR 循环结构
String:=(i|| rpad(‘ ‘,5)||substr(‘
‘,1,(5-i))||substr(‘*********’,1,(i*2-1)));
END;
DBMS_OUTPUT.PUT_LINE(string);
END LOOP;
3. 先创建 d_asc 表。再编写一个匿名 PL/SQL 块,实现往此表插入 ASCII 码值从 32 至 126 的码号和相应
码值的字符。(提示:用 CHR()函数, 要求分别用两种循环方法实现)。
create table d_asc(n number, a char);
begin
for i in 32..126 loop –FOR loop 有计数的循环
insert into d_asc values(i, chr(i)); –PL/SQL 中嵌入了 DML 语句
end loop;
commit;
end;
/
/* 检查 PL/SQL 程序块执行结果*/
Select * from d_asc;
.OR.
declare
i number(4):=32;
begin
while i<=126 loop –WHILE loop 有条件的循环
insert into d_asc values(i, chr(i));
i:=i+1;
end loop;
commit;
end;
/
附加题:
用 PL/SQL 的循环语句编程,求:12+32+52+…+132+152 的值。
SET SERVEROUTPUT ON
DECLARE
v_sub NUMBER(5):=12;
v_sum NUMBER(5):=0;
BEGIN
LOOP
v_sum:=v_sum+v_sub;
v_sub:=v_sub+20;
EXIT WHEN v_sub>152;
END LOOP;
DBMS_OUTPUT.PUT_LINE(v_sum);
END;
执行结果为:
656
PL/SQL 过程已成功完成。