9. pl/sql


1.pl/sql  语法:
                    declare(可选) 声明变量 数据类型 【:=赋值】
          begin

          end
    在output中显示  dbms_output.put_line('HelloWorld')
             
                 begin dbms_output.put_line('wangjie'); end;

2.声明变量
                间接指定
                表名.字段名%type
                declare
                         name books.author%type:='wangjie';
                begin
                          dbms_output.put_line(name);
               end;
                用于指定变量的数据类型和某一个表中的某一个字段的数据类型相同
                表名%rowtype
                declare
                          roww books%rowtype;
                begin
                         select * into roww from books where name='朝花夕拾';
                          dbms_output.put_line(roww.id);
                 end;
                声明一个变量,意味着,这个变量指的是这个表中的一行数据
                可以通过变量名 . 字段名来访问存入变量中的那一行数据
                直接指定
                          数据类型 【:=赋值】
3. 分支语句
    if分支
        单分支
                语法: if 条件(布尔类型) then 执行体 end if;
        双分支
                语法:if 条件(布尔类型) then 执行体 else 执行体 end if;
      例子:已知一个值0901 判断是否是生日
      begin
          if to_number(to_char(sysdate,'mmdd'))=0325  then dbms_output.put_line('生日');
          else dbms_output.put_line('不是生日');
          end if;
     end;
               
                  多分支
                          语法:  if 条件(布尔类型) then 执行体 elsif 条件 then 执行体 ......... else 执行体 end if;
       例子:定义一个变量,输入1 输出星期一
          declare
                week char(2):='1';
          begin
                if week ='1' then dbms_output.put_line('星期一');
               elsif week = '2' then dbms_output.put_line('星期二');
               elsif week = '3' then dbms_output.put_line('星期三');
               elsif week = '4' then dbms_output.put_line('星期四');
               elsif week = '5' then dbms_output.put_line('星期五');
               elsif week = '6' then dbms_output.put_line('星期六');
               elsif week = '7' then dbms_output.put_line('星期日');
               else dbms_output.put_line('输入有误');
               end if;
          end;
               
    case分支(case表达式)   : 主要用于赋值  
            语法
                变量名 := case 变量 when 常量 then 值 when 常量 then 值 .... else 值 end;
            例子:
                 declare
                    pt_week char(2):=1;
                    week char(8);
                 begin
                         week:=case pt_week
                              when '1' then '星期一'
                              when '2' then '星期二'
                              when '3' then '星期三'
                              when '4' then '星期四'
                              when '5' then '星期五'
                              when '6' then '星期六'
                              when '7' then '星期日'
                          else '输入有误'
                          end;
                         dbms_output.put_line(week);
                  end;
       
      
4. 循环
    for loop循环
        语法: for 变量 in[reverse] 下限..上限 loop 循环体 end loop;
              
         注意:  变量由下限到上限
              如果有reverse 反转由上限到下限
              下限上限必须由小到大,否则不报任何错误,但是循环体不执行
              下限上限使用整数,因为小数部分不输出
         例子: 
                    begin
                          for i in reverse 1..12
                          loop dbms_output.put_line(i);
                          end loop;
                    end;
        exit的 作用: 跳出循环, 近似于Java中的break
                 例:
                     begin
                              for i in reverse 1..12
                              loop dbms_output.put_line(i);
                                   if i=5
                                   then exit;
                                   end if;
                              end loop;
                              dbms_output.put_line('111');
                     end;
             
    loop循环
        语法:
                loop 循环体 exit when 布尔型; end loop;
             
                 exit when 和end loop 之间一般只是设置步长
                相当于 Java中的 do...while
    while loop
        语法
                while 布尔型 loop 循环体 end loop;
    goto关键字
        设置一个<<print_label>>,goto 在循环中,用于结束循环至指定位置代码
        作用: 结束循环,跳转到指定位置
    null 关键字
        什么都不执行,只是为了完善语法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值