Oracle笔记(三)

分支语句
if 条件 then 语句
end if;

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

if 条件1  then 语句1 elsif 条件2 then ......
--创建简单过程
create or replace procedure zxx_pro1 as
--声明部分
v_sal emp.sal%type;
begin
select sal into v_sal from emp where ename='SCOTT';
dbms_output.put_line('SCOTT的工资是'||v_sal);
end;
--调用过程
exec 过程名;
--创建过程,对工资低于2000的雇员工资提高10%
create or replace procedure sal_pro1(sname varchar2) as
v_sal emp.sal%type;
begin
select sal into v_sal from emp where ename=sname;
if v_sal<2000  
   then  update emp set sal=sal+sal*0.1  where ename=sname;
end if;
end;
--创建过程
create or replace procedure sal_pro1(sname varchar2) 
as
v_sal emp.sal%type;
begin
select sal into v_sal from emp where ename=sname;
if v_sal<2000 then
   begin 
   update emp set sal=sal*1.1 where ename=sname;
   select sal into v_sal from emp where ename=sname;
   dbms_output.put_line(sname||'已调整工资为'||v_sal);
   end;
end if;
end;
--过程中例外的应用,绑定变量的应用
create or replace procedure emp_pro1(enum number)
as
v_enum  emp.empno%type;
v_name  emp.ename%type;
v_sal   emp.sal%type;
begin
select ename,sal,empno into v_name,v_sal,v_enum from emp where empno=enum;
if v_sal<2000 then 
              begin
              update emp set sal=sal*1.1 where empno=v_enum;
              dbms_output.put_line('name is '||v_name||' salary is '||v_sal);
              end;
end if;
exception
when no_data_found then
     dbms_output.put_line('this number is not exsist!');
end;
--循环结构
--loop...end loop;
--建个简单的users表,循环添加记录
--userid number(4),username varchar2(16)
create table users(
userid  number(4),
username varchar2(16)
);
--创建过程循环添加10条记录到users表
create or replace procedure users_pro1
is
v_num users.userid%type:=1;
begin
    loop
    insert into users values(v_num,'洪蕾');
    exit when v_num=10;
    v_num:=v_num+1;
    end loop;
end;  
-- for循环
--添加记录到users表
create or replace procedure users_pro2
is
i number(4);
begin
for i in reverse 11..20 loop
    insert into users values(i,'玉龙');
    end loop;
end;

create or replace procedure emp_pro1
is
v_name  emp.ename%type;
v_sal  emp.sal%type;
v_enum emp.empno%type;
begin
select ename,sal,empno into v_name,v_sal,v_enum from emp where empno=&no;
if v_sal<2000 then 
              begin
              update emp set sal=sal*1.1 where empno=v_enum;
              dbms_output.put_line('name is '||v_name||'   salary is '||v_sal);
              end;
end if;
exception
  when  no_data_found then
  dbms_output.put_line('not exsist');
end; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少言才不会咸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值