4.PL/SQL编程

一.声明变量,给变量赋值

declare
 v_name varchar2(30);
 --声明变量的数据类型和表中的某个列的类型一致
 v_job emp.job%type;
begin
  --给变量赋值
  v_name:='崔宸';
  --通过select给变量赋值,要保证查询结果的唯一性:提那家查询条件
  select ename,job into v_name,v_job from emp where empno=7788;
  --输出变量的值
  dbms_output.put_line(v_name||'---'||v_job);
 end;

二.循环

1.loop循环

 declare
   v_age number(3,0):=1;
 begin
   loop
     if v_age>=18 then exit;
     end if;
     v_age:=v_age+1;
   end loop;
   dbms_output.put_line('v_age='||v_age);
  end;

2.while循环

   declare
     v_num number(3,0):=1;
     v_sum number(6,0):=0;
   begin
     while v_num<=100 loop
       v_sum:=v_sum+v_num;
       v_num:=v_num+1;
     end loop;
     dbms_output.put_line(v_sum);
   end;

3.for循环

   declare
     v_sum number(4,0):=0;
   begin
     for i in 1..100 loop
        v_sum:=v_sum+i;
     end loop;
     dbms_output.put_line(v_sum);
    end;

三.存储过程

完成业务功能处理,不能返回值

存储过程的参数类型

  • in 输入参数–向存储过程内传递值
  • out 输出参数–得到存储过程里的值

例子:

①:

   create or replace procedure pro_countemp2(dno in emp.deptno%type,
                                             empcount out number)
   is
   begin
     declare v_count number(3,0);
     begin
       select count(empno) into v_count from emp
       where deptno=dno;
       empcount:=v_count;
     end;
   end;

调用存储过程:

   declare
     v_count2 number(3,0):=0;
   begin
     pro_countemp2(10,v_count2);
     --输出v_count的值
     dbms_output.put_line(v_count2);
   end;

②:
声明函数

 create or replace function fun_countemp(dno emp.deptno%type)
  return number
  is
  begin
    declare v_count number(3,0):=0;
    begin
      select count(empno) into v_count from emp where deptno=dno;
      return v_count;
    end;
  end;  

调用函数

 declare
   v_empCount number(3,0):=0;
 begin
   --接收函数的返回值
   v_empCount:=fun_countemp(10);
   dbms_output.put_line(v_empCount);
 end;
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值