oracle sql公式拆分,请大神解答!

公式可能是,a/b,也可能是a+b+c,加减乘除都会有,也可能包含括号。例如:编号公式101(a+b)/(c*d)要求拆分,插入到表里。编号公式项101a101b101c... 公式可能是,a/b,也可能是a+b+c,加减乘除都会有,也可能包含括号。

例如:
编号 公式
101 (a+b)/(c*d)

要求拆分,插入到表里。

编号 公式项
101 a
101 b
101 c
101 d
展开
 我来答
Storm_duck
2014-08-14 · TA获得超过1629个赞
知道小有建树答主
回答量:1104
采纳率:82%
帮助的人:446万
展开全部

declare

  v_length number;

  v_str    varchar(20);

  v_Temp   varchar(20);

  v_result varchar(20);


  cursor cur_test is

    select c from test1;


begin

  open cur_test;

  loop

    fetch cur_test

      into v_str;

    exit when cur_test%notfound;

  

    select length(c) into v_length from test1 where c = v_str;

    v_Temp := v_str;

    for inx in 1 .. v_length loop

      select substrb(v_Temp, 1, 1)

        into v_result

        from test1

       where c = v_str;

      if v_result <> '(' and v_result <> ')' and v_result <> '+' and

         v_result <> '-' and v_result <> '*' and v_result <> '/' then

        dbms_output.put_line(v_result);

      end if;

    

      v_Temp := ltrim(v_Temp, v_result);

    

    end loop;

  end loop;

  close cur_test;

     end;

可以将公式分解,插入表的语句你自己在上面过程中做下吧。测试数据:

百度网友45b3294
2014-08-15 · TA获得超过157个赞
知道答主
回答量:62
采纳率:0%
帮助的人:50.3万
展开全部
create table tablename (编号 number,公式项 char(2)) -------先建要插入的表

存储过程:
create or replace procedure chaifen(iv_num number, iv_str varchar2) is

li_char varchar2(4);
li_count number;
li_i number;
li_asc number;
begin
li_count := 0;
li_i := 1;
select length(iv_str) into li_count from dual;

loop
exit when li_i > li_count;

select substr(iv_str, li_i, 1) into li_char from dual;
select Ascii(li_char) into li_asc from dual;

if li_asc > 64 and li_asc < 123 then
insert into madw_tablename values (iv_num, li_char);
commit;
li_i := li_i + 1;
else
li_i := li_i + 1;
end if;
end loop;
exception
when others then
rollback;
return;
end chaifen;

-----
调用存储过程完成
begin
chaifen(101,’a+b+c‘);
end; ---------- 这里能插入表的公式项只能是A~Z,a~z
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
year洗洗睡
2014-08-14 · TA获得超过357个赞
知道小有建树答主
回答量:495
采纳率:0%
帮助的人:209万
展开全部
你把你题目发上来看下,,,,这你说的根本不清楚,,,还是我水平低了
更多追问追答
追答

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式