对一个逻辑运算:10=5+3+2进行解析,如何写存储过程?

解决方案 »

  1.   

    -- 哈哈:
    select '对一个逻辑运算:10=5+3+2进行解析,如何写存储过程?' from dual;
      

  2.   

    -- 哈哈:select '很急' from dual;
      

  3.   

    select 5+3+2 from dual;
      

  4.   


    SQL> select '5+3+2='||to_char(5+3+2) as results from dual;RESULTS
    --------
    5+3+2=10
      

  5.   

     select (5+3+2)||'=5+3+2' from dual; 
      

  6.   

    select '5+3+2='||to_char(5+3+2) from dual;
      

  7.   

    SQL> create or replace procedure proc_judge_logic_exp(i_str    in varchar2,
      2                                                   o_result out number) as
      3    v_num number;
      4  begin
      5    execute immediate 'select count(*) from dual where ' || i_str
      6      into v_num;
      7    if v_num > 0 then
      8      o_result := 1;
      9    else
     10      o_result := 0;
     11    end if;
     12  end;
     13  /
     
    Procedure created
     
    SQL> var v_a number;
    SQL>  exec proc_judge_logic_exp('10=5+3+2',:v_a);
     
    PL/SQL procedure successfully completed
    v_a
    ---------
    1
     
    SQL>