Oracle 存储过程简单实例
1.数据表:
-- 作为测试,两个表除表名完全一样~
create table TT_USER2
(
USERID NUMBER(10),
USERNAME VARCHAR2(255),
PASSWORD VARCHAR2(255),
SEX VARCHAR2(1)
);
2.存储过程的目的
tt_user 表中sex为0
的数据插入到tt_user2中
3.存储过程语句
--声明存储过程
create or replace procedure user1to2
as
--声明变量(变量名 类型)
nuserid number;
nusername varchar2(50);
npassword varchar2(50);
nsex varchar(1);
strsql varchar2(500);
--编写逻辑语句
begin
--loop循环遍历表tt_user,r为每次遍历时,tt_user的*
for r in (select * from tt_user) loop
--select语句,用来取值并将值作为下面条件判断的源数据
SELECT sex into nsex from tt_user where userid = r.userid;
--if条件判断
if nsex = 0 then
--对上面声明的变量进行赋值
nuserid := to_number(r.userid);
nusername := r.username;
npassword := r.password;
--用上面的变量进行执行sql的拼接
strsql := 'insert into tt_user2(userid,username,password,sex) values ' ||
' (' || nuserid || ',''' || nusername || ''',''' || npassword || ''',' || nsex || ')';
--执行sql语句
execute immediate strsql;
--结束if条件判断
end if;
--结束循环
end loop;
--提交事务
commit;
--结束存储过程
end;
4.执行存储过程
call user1to2();
5.执行结果
6.说明
此实例用来做存储过程的入门,用到了循环,条件判断,以此入手,可以更加深入学习存储过程。