oracle存储过程基础入门(一)

1. 第一个存储过程:

 1 create or replace procedure TEST(EMPNO1 IN NUMBER)  -- 定义一个参数EMPNO1,用于输入需要涨钱的员工编号
 2 AS
 3 
 4 --定义一个变量保存涨前的薪水(两种方式都可以)
 5 --PAR_SAL emp.sal%type;
 6 PAR_SAL number;
 7 BEGIN
 8 
 9 --得到员工涨前的薪水
10 SELECT SAL INTO PAR_SAL FROM EMP where EMPNO=EMPNO1 ;
11 
12 --给该员工涨100
13 UPDATE EMP SET SAL=SAL+100 WHERE EMPNO=EMPNO1;
14 DBMS_OUTPUT.PUT_LINE('前:'||PAR_SAL||'后:'||(PAR_SAL+100));
15 END;

调用此存储过程,如果有参数,调用时写参数:

begin
test (7369);
end;

 2. 判断从键盘输入的一个数值

 1  --判断用户从键盘输入的数字。num为地址值,含义是:在该地址上保存了输入的值
 2 accept num PROMPT '请输入一个数字';
 3 
 4 declare 
 5 --把键盘输入的数字赋值给pnum,num为地址值,所以加&符号
 6 pnum number:=#    
 7 begin
 8 if pnum=0 then dbms_output.put_line('输入的是数字0');
 9 elsif pnum=1 then dbms_output.put_line('数字0');
10 else dbms_output.put_line('其他数字');
11 end if;
12 end;
13 /

其中 if 循环的三种格式:

第一种:

if 条件 then 语句1;
语句2;
end if;

第二种:
if 条件 then 语句序列1; 
else 语句序列2;
end if;

第三种:
if 条件 then 语句;
elsif 语句 then 语句;
else 语句;
end if;

3. PL/SQL中循环语句的使用

如下三种循环语句,输出结果均为1-10的数字。

1 declare 
2 pnum number :=1;
3 begin
4 while  pnum <=10 loop
5 dbms_output.put_line(pnum);
6 pnum :=pnum+1;
7 end loop;
8 end;
9 /
 1 declare 
 2 pnum number :=1;
 3 begin
 4 loop
 5 exit when pnum >11; 
 6 dbms_output.put_line(pnum);
 7 pnum :=pnum+1;
 8 end loop;
 9 end;
10 /
1 declare 
2 pnum number :=1;
3 begin
4 for pnum in 1..10 loop
5 dbms_output.put_line(pnum);
6 end loop;
7 end;
8 /
posted @ 2019-02-19 22:45  佐小白  阅读(320)  评论(0)    收藏  举报