Oracle 存储过程简单实例

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.说明

此实例用来做存储过程的入门,用到了循环,条件判断,以此入手,可以更加深入学习存储过程。

  • 13
    点赞
  • 119
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值