pl/sql的介绍、基础
pl/sql(procedural language/sql) 是oracle在标准的sql语言上的扩展。
pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变得更加强大。
一个简单的存储过程,该过程可以向某表中添加记录
步骤:
1、创建一个简单的表
create table mytest(name varchar(30),passwd varchar2(30));
2、创建过程
create or replace procedure sp_prol is --replace表示如果存在的
话,则替换掉
begin
--执行部分
insert into mytest values('艳儿','m123');
end;
/ --最后一步必须写上/
show error;--用于查看错误
如何调用该过程
(1)exec 过程名(参数值1,参数值2...)
(2)call 过程名(参数值1,参数值2...)
Oracle中的循环语句
loop是pl/sql中最简单的循环语句,这种循环语句以loop开头,以end loop结尾
,这种循环至少会被执行一次。和java中的do{} while();循环类似。
编写一个过程,可以输入用户名,并添加10个用户到user表中,用户编号从1开始
create or replace procedure sp_pro6(spName varchar2) is
--定义:=表示赋值
v_num number:=1;
begin
loop
insert into users values(v_num,spName);
--判断是否要退出循环
exit when v_num = 10;
--自增
v_num:=v_num+1;
end loop;
end;
while循环
while循环以while、loop开始,以end loop结束
实例:编写一个过程,可输入用户名,并循环添加10个用户到users表中,用户编
号从11开始增加。
create or replace procedure sp_pro6(spName varchar2) is
v_num number:=11;
begin
while v_num<=20 loop
insert into users values(v_num,spName);
v_num:=v_num+1;
end loop;
end;
for循环
基本for循环的基本结构如下:
begin
for i in reverse 1..10 loop
insert into users values(i,'艳儿');
end loop;
end;
/
我们可以看到控制变量i,在隐含中就在不停的增加
我们一般不建议大家使用for循环。