我有一个表记录其他表的各列之间的公式,但公式之间有嵌套,所以在更新公式的时候就会涉及到刷新顺序,各一个SQL或函数先得到刷新顺序,测试样本如下:
create table TEST
(
 COL VARCHAR2(50),
 FORMULA VARCHAR2(100)
);
INSERT INTO TEST VALUES('N1','N2+N3');
INSERT INTO TEST VALUES('N2','N4*N5');
INSERT INTO TEST VALUES('N3','CASE WHEN C1 < 10 THEN 100 ELSE 0 END');
INSERT INTO TEST VALUES('N5','N6/N7');COL列是要更新的列名,FORMULA列是公式内容,比如第一行N1=N2+N3,但N2和N3列分别也是公式,所以刷新时应先刷新N2和N3,就是这样意思,先谢谢了

解决方案 »

  1.   

    这搞得看半天才看懂楼主的意思。楼主可以用替换的思想啊,把整个表的COL,FORMULA 两列都做替换。挨个搞定?不知道能否达到LZ的意思,只能帮你倒这了。
      

  2.   

    一般是在程序中先检查了先后次序,没有循环才能写入数据库,写入时把这个先后次序也写到记录中。
    否则没检查直接来这么几个公式,不就崩溃了
    N1=N2+1
    N2=N3+1
    N3=N1-2