Database 将字符串中的表达式转换为Oracle过程(PL/SQL)中的布尔表达式

Database 将字符串中的表达式转换为Oracle过程(PL/SQL)中的布尔表达式,database,oracle,stored-procedures,plsql,Database,Oracle,Stored Procedures,Plsql,是否可以在过程中运行字符串格式的表达式 我有一个字符串,它是真的,真的,假的,假的,真的 现在我需要验证它的真实性。在这个过程中我应该怎么做 为了给出详细的解释,字符串是从另一个不在我控制范围内的查询返回的,我可以编写类似的函数,但只能从字符串中的布尔值返回true。我在这里有不同的要求,可以按程序进行吗?如果是,怎么做 谢谢: set serveroutput on declare expr varchar2(1000) := '((TRUE AND TRUE

是否可以在过程中运行字符串格式的表达式

我有一个字符串,它是真的,真的,假的,假的,真的

现在我需要验证它的真实性。在这个过程中我应该怎么做

为了给出详细的解释,字符串是从另一个不在我控制范围内的查询返回的,我可以编写类似的函数,但只能从字符串中的布尔值返回true。我在这里有不同的要求,可以按程序进行吗?如果是,怎么做

谢谢:

     set serveroutput on
     declare
       expr varchar2(1000) := '((TRUE AND TRUE) OR (TRUE AND FALSE) OR (FALSE AND TRUE))';
       i int;
      begin
        execute immediate 'begin if '||expr||' then :a := 1; else :a := 0; end if; end;' using out i;
        if i = 1 then
          dbms_output.put_line('TRUE');
        else
          dbms_output.put_line('FALSE');
        end if;
      end;
      /
    TRUE                                                                            

   declare
     expr varchar2(1000) := '((TRUE AND TRUE) AND (TRUE AND FALSE) AND (FALSE AND TRUE))';
     i int;
    begin
      execute immediate 'begin if '||expr||' then :a := 1; else :a := 0; end if; end;' using out i;
      if i = 1 then
        dbms_output.put_line('TRUE');
      else
        dbms_output.put_line('FALSE');
      end if;
    end;
    /
    FALSE