PL/SQL的Boolean的三个值:TRUE,FALSE,NULL两两进行AND,OR操作的值

--让我们来看一下,在什么情况下会出现NULL值?
declare 
   type t_arr is array(3) of boolean;--声明boolean数组
   b_array t_arr:=t_arr(true,false,null);--数组初始化
   b_flag boolean;--运算结果值
   v_str varchar2(100);--拼串结果
   --函数,将boolean值转换为对应的varchar2值,在sql中不支持boolean数据类型
   function TSBOOLEAN(b_flag boolean) return varchar2 is
   begin
      return case b_flag
                when true  then 'true'
                when false then 'false'
                else 'null'
             end;     
   end;

begin
     for k in 1..2 loop  --运算符(and,or)
       for i in 1..3 loop--第一个boolean值
         for j in 1..3 loop--第二个boolean值
             v_str:=TSBOOLEAN(b_array(i));--第一个boolean值
             if k = 1 then
               v_str:=v_str||' AND ';--第一个boolean值拼接运算符
               b_flag:=(b_array(i) and b_array(j));--运算结果值
             else
               v_str:=v_str||' OR ';--第一个boolean值拼接运算符
               b_flag:=(b_array(i) or b_array(j)); --运算结果值             
             end if;
             v_str:=v_str||TSBOOLEAN(b_array(j))||' ===> '||TSBOOLEAN(b_flag);
             dbms_output.put_line(v_str);
         end loop;
       end loop;
     end loop;     
end;

参考链接http://www.2cto.com/database/201302/188398.html






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值