create or replace procedure SP_Update_Age
(
uName in varchar,
Age in int
)
as
begin
update students set UserAge = UserAge + Age where userName = uName;
commit;
end SP_Update_Age;
--在执行存储过程前,先看原来的数据
select * from students;
--然后我们在SQL Editor中执行如下存储过程。注意看是怎么调用的:
exec SP_UPDATE_AGE('jack',1); --cmd中用
call SP_UPDATE_AGE('jack',1); --此处用
/*下面,来看看基本语法:
1,变量赋值
变量名 := 值;
2,判断语句。
if
比较式
then
begin
end;
end
if
结合起来写个简单例子:*/
create or replace procedure Test(x in out number)
is
begin
if x<0 then
begin
x := 0 - x;
end;
elsif x > 0 then
begin
x := x;
end;
else
x := 0;
end if;
end Test;
/*Test:*/
set serveroutput on;--没这句话,看不到dmbs_output信息。 cmd执行 之后别忘了输入/回车
declare
num number;
begin
num:=-1;
test(num);
dbms_output.put_line('num = '||num);
end;
/*3,For循环,
For in ..loop;*/
set serveroutput on;
DECLARE
x NUMBER := 100;
BEGIN
FOR i IN 1..100 LOOP
IF MOD(i,2) = 0 THEN
dbms_output.put_line('i:'||i||'is even');
ELSE
dbms_output.put_line('i:'||i||'is odd');
END IF;
x := x+100;
dbms_output.put_line('x value:'||x);
END LOOP;
COMMIT;
END;
--While 循环。
create or replace procedure Test2(i in out number)
as
begin
while i < 10 loop
begin
i:=i+1;
end;
end loop;
end Test2;
--测一下吧
set serveroutput on;
declare
num number;
begin
num:=1;
test2(num);
dbms_output.put_line('num='||num);
end;
--第一阶段就到这 简单的了解一下