首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

oracle存储过程开发,牵系字符串SQL处理

2013-07-08 
oracle存储过程开发,涉及字符串SQL处理存储过程中现有变量A,B,C......不定数量的变量,且都有赋值。现有动态

oracle存储过程开发,涉及字符串SQL处理
存储过程中现有变量A,B,C......不定数量的变量,且都有赋值。现有动态字符串 STR :='A+B-C'(每次获得的字符串不同),如何求得STR字符串所表示的表达式的值?




        例如:A=1,B=2,C=3,D=4




        当STR := 'A+B'时,求得A+B=3;




        当STR := 'A-B'时,求得A-B=-1;




        当STR := 'A+B-C'时,求得A+B-C=0;




        如何实现求指点。

[解决办法]



    declare
      str varchar2(10) := '1*2+3';
      sql_s varchar2(100);
      n number;
   begin
      sql_s := 'select '
[解决办法]
str
[解决办法]
' from dual';
      execute immediate sql_s into n;
      dbms_output.put_line(str 
[解决办法]
' = '
[解决办法]
n);
   end;

[解决办法]
create or replace function getvalue(li_A number,li_B number,li_C number,ls_sql  varchar2) return number is
  li_return  number;
  ls varchar2(32);
begin
  ls:=replace(replace(replace(ls_sql,'A',li_A),'B',li_B),'C',li_C);
  execute immediate 'select '
[解决办法]
ls 
[解决办法]
' from dual ' into li_return;
  return(li_return);
end getvalue;
这个只是是例子,作参考。

热点排行