在oracle中使用pl/sql来扩展SQL的功能,使得SQL能够更加的灵活,功能更加强大,效率更高。pl/sql让sql也能执行判断,循环等操作。主要记录一下pl/sql的基本语法和基本条件判断语句和循环语句供忘记了方便查阅。

1.pl/SQL的语法结构:

    declare 

      //这部分用于声明变量

    begin

      //这部分用于处理业务逻辑

    exception

      //这部分用于处理例外也就是异常情况

    end;

   例如:   

      declare
        uname varchar2(10);
        hello varchar2(10) := 'helloworld'; --为变量赋值
        vsal emp.sal%type; --声明一个引用类型的变量
        pall emp%rowtype; --声明一个记录类型的变量
        digit number:=#---提示用户输入,然后根据用户输入执行相应的操作

        ...
      begin
        dbms_output.put_line(hello);
      exception
        when exception_name then

           //操作
      end;

2.)pl/sql的条件判断语句

    if 条件 then 

      语句;

    elsif 条件then 

      语句;

    else 

      语句;

    end if;

例如:根据输入的年龄判断是处于哪个阶段的人

        declare
          age number := #
        begin
          if age < 18 then
             dbms_output.put_line('你还是未成年人');//表示系统输出语句,类似于system.out.print();
          elsif age > 18 and age <= 40 then
             dbms_output.put_line('你是青年人');
          else
             dbms_output.put_line('你是中年人!');
          end if;
        end;

3.)pl/sql的循环语句

  在pl/SQL中有三种循环结构。

  3.1)while 条件 loop

    语句块;

    end loop;

    例如:循环输出1-10的数。

      declare
        step number := 1;
      begin
        while step <= 10 loop
          dbms_output.put_line(step);
          step := step + 1;
        end loop;
      end;

  3.2)loop 循环语句

    loop 

      exit when 退出条件;

      语句块;

     end loop;

例如:输出1-9的数。

      declare
        step number := 1;
      begin
        loop
          exit when step > 10;--当step>10退出循环
          dbms_output.put_line(step || ' ');
          step := step + 1;
        end loop;
      end;

  3.3)for语句循环结构

    for 循环变量 in n..N loop

      语句块;

    end loop;

例如:输出1-10之间的数。

    declare
    begin
      for step in 1.. 10 loop
      dbms_output.put_line(step);
    end loop;
    end;

案例1--使用PLSQL输出菱形
  declare
    m number := 10;
  begin
    for x in -m..m loop
      for y in -m..m loop
      if abs(y) + abs(x) <= m then
      dbms_output.put('*');
      else
      dbms_output.put(' ');
      end if;
      end loop;
    dbms_output.new_line();
   end loop;
  end;

案例2--使用PLSQL输出三角形。
  declare
    m number := 10;
  begin
    for x in reverse -m..m loop
      for y in -m..m loop
        if abs(y) + abs(x) <= m and x>=0 then
        dbms_output.put('*');
        else
        dbms_output.put(' ');
        end if;
      end loop;
    dbms_output.new_line();
    end loop;
  end;

以上就是pl/sql的基本语法以及基本的条件和循环结构。