plsql中的布尔算术

Posted

技术标签:

【中文标题】plsql中的布尔算术【英文标题】:Boolean arithmetics in plsql 【发布时间】:2012-05-28 09:12:08 【问题描述】:

我有一组 pl/sql 函数,都返回布尔类型。 我从另一个 pl/sql 函数中一一调用这些函数。我想“累积”结果并从该函数返回。

例如:

  v_res  boolean;
  v_res2 boolean := true;
begin
  v_res := f1('aa');
  if v_res = false then
    v_res2 := false;
  end if;

  v_res := f2('aa');
  if v_res = false then
    v_res2 := false;
  end if;

  -- some other calls to other functions

  return v_res2;
end;

我想知道,我可以在 pl/sql 中进行布尔运算吗? 我的意思是这样的:

  v_res boolean := true;
begin
  v_res := v_res * f1('aa');
  v_res := v_res * f2('aa');
  -- more calls to functions
  return v_res;
end;

我试过了:

v_res := v_res * false;

v_res := v_res and false;

但似乎唯一可行的是将布尔值转换为 int(我尝试使用 sys.diutil.bool_to_int),这感觉不对...

【问题讨论】:

v_res * false - 你对这种奇怪的表达有什么期望? 你最后一次尝试成功:v_res := v_res and f1('aa'); @TonyAndrews,你说得对!我不知道上次检查时发生了什么... @zerkms,我希望它在“C”中是错误的。 【参考方案1】:
begin
  return f1('aa')
     and f2('aa')
     ... etc. ...
     ;
end;

【讨论】:

以上是关于plsql中的布尔算术的主要内容,如果未能解决你的问题,请参考以下文章

Javascript 简单布尔算术

用正则表达式解析布尔算术,包括括号?

python中的整数浮点数和布尔值

基本内置类型

004-Shell 基本运算符算术运算符关系运算符布尔运算符辑运算符字符串运算符文件测试运算符

python-逻辑运算和布尔值