文档库 最新最全的文档下载
当前位置:文档库 › 使用PLSQL编程

使用PLSQL编程

使用PLSQL编程
使用PLSQL编程

实验: 使用PL/SQL 编程

实验目的

(1)掌握条件控制和循环控制语句的使用。

(2)掌握PL/SQL中变量。

(3)掌握记录类型和索引表类型的使用。

(4)掌握PL/SQL中的DML语句和事务控制语句。

实验内容

1.编写一个PL/SQL块,交换两个变量的值。分别显示交换前后的变量值。

SQL> SET SERVEROUTPUT ON

SQL> ED

已写入file afiedt.buf

1 DECLARE

2 v_num1 NUMBER(10);

3 v_num2 NUMBER(10);

4 v_num3 NUMBER(10);

5 BEGIN

6 v_num1:=1;

7 v_num2:=2;

8 v_num3:=0;

9 dbms_output.put_line('num1='||v_num1||' '||'num2='||v_num2);

10 v_num3:=v_num1;

11 v_num1:=v_num2;

12 v_num2:=v_num3;

13 dbms_output.put_line('num1='||v_num1||' '||'num2='||v_num2);

14* END;

SQL> /

num1=1 num2=2

num1=2 num2=1

PL/SQL 过程已成功完成。

2.编写一个PL/SQL块,用一个循环显示1~10之间的所有奇数。

SQL> ED

已写入file afiedt.buf

1 DECLARE

2 i number:=1;

3 BEGIN

4 WHILE i<=10

5 LOOP

6 DBMS_OUTPUT.PUT_LINE(i);

7 i:=i+2;

8 END LOOP;

9* END;

SQL> /

1

3

5

7

9

PL/SQL 过程已成功完成。

3.使用sql/plus,显示emp表中的职工号为7788的职工号,职工姓名和部门编号。

SQL> CONN SCOTT/TIGER

已连接。

SQL> SET SERVEROUTPUT ON

SQL> ED

已写入file afiedt.buf

1 DECLARE

2 v_empno NUMBER;

3 v_name V ARCHAR2(10);

4 v_deptno NUMBER;

5 BEGIN

6 SELECT empno,ename,deptno INTO v_empno,v_name,v_deptno

7 FROM emp WHERE empno=7788;

8 dbms_output.put_line(v_empno||' '||v_name||' '||v_deptno);

9* END;

SQL> /

7788 SCOTT 20

PL/SQL 过程已成功完成。

4.5个数求最大值(使用表类型)

设定5个数的值,求出其中最大的值,并赋值给mx变量。

SQL> SET SERVEROUTPUT ON

SQL> ED

已写入file afiedt.buf

1 DECLARE

2 TYPE dh_table_type IS TABLE OF NUMBER(20)

3 INDEX BY BINARY_INTEGER;

4 my_table dh_table_type;

5 v_mx NUMBER;

6 BEGIN

7 v_mx:=0;

8 my_table(1):=10;

9 my_table(2):=20;

10 my_table(3):=30;

11 my_table(4):=2;

12 my_table(5):=33;

13 FOR i IN my_table.FIRST..my_https://www.wendangku.net/doc/4b14912738.html,ST LOOP

14 IF v_mx

15 v_mx:=my_table(i);

16 END IF;

17 END LOOP;

18 DBMS_OUTPUT.PUT_LINE('THE MAX IS '||v_mx);

19* END;

SQL> /

THE MAX IS 33

PL/SQL 过程已成功完成。

5.输出乘法九九表

提示:(dbms_output.put(),不输出换行符,dbms_output.put_line(),输出换行符)

SQL> SET SERVEROUTPUT ON;

SQL> ED

已写入file afiedt.buf

1 declare

2 i number:=1;

3 j number:=1;

4 begin

5 for i in 1..9 loop

6 for j in 1..i loop

7 dbms_output.put(j||'*'||i||'='||i*j||' ');

8 end loop;

9 dbms_output.put_line('');

10 end loop;

11* end;

SQL> /

1*1=1

1*2=2 2*2=4

1*3=3 2*3=6 3*3=9

1*4=4 2*4=8 3*4=12 4*4=16

1*5=5 2*5=10 3*5=15 4*5=20 5*5=25

1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36

1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49

1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64

1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

PL/SQL 过程已成功完成。

相关文档