我现在遇到一个问题,请教大家:  有个表,专门存储用户定义的计算公式的,从表中取出计算公式后,想对该字符串解析,
如:公式 gs='(1+a1)*0.5/88+a2/78-a3-(a4*5+a5)+10';或者其他的类似的简单运算公式,想将a1,a2,a3,a4,a5这些不是常量的字符剥离出来,有什么比较简单通用的方法么?先谢谢大家!

解决方案 »

  1.   

    一个比较笨拙的方法:
    在PLSQL中,
    用LENGTH计算出字符长度(也就是个数---一般情况,字符集不同有差异)----这个是我们的循环次数,
    然后有个计数器NUM变量从一开始,然后用SUBSTR取每个字符,然后验证他是否是字母,若是另一个变量开始存值,一直到除了字母或者数字的情况这个变量的出的就是第一个变量。
    不知道你名不明白....
    v_count:=length(str)
    for i in 1..v_count loop
    v_str:=substr(str,i,1);
    if ascii(v_str) >ascii('a') then
       if ascii(v_str)<ascii('z') then
       v_t:=v_str;
       ....
       end if
    end if......
    大致伪代码如此,你们在看看又没有简单的方法
      

  2.   

    想将a1,a2,a3,a4,a5这些不是常量的字符剥离出来,那楼主就是知道要剥离的东西。
    那用这样可以啊!
    instr(gs, a_)判断有没有常量字符.update tbl set gs = replace(gs,'a_','代替字符') where gs like '%a_%'删除常量字符.