Oracle PLSQL按id值计算公式

Oracle PLSQL按id值计算公式,oracle,plsql,eval,formula,Oracle,Plsql,Eval,Formula,我看到了类似的帖子,但对我的问题没有帮助 我有一个公式参考表像 ID CODE FORMULA 1 A 2 B 3 C 1+2 4 D 5 E 1+2-4 CODE VALUE A 100 B 200 D 300 和值表一样 ID CODE FORMULA 1

我看到了类似的帖子,但对我的问题没有帮助

我有一个公式参考表像

ID        CODE       FORMULA
1         A          
2         B
3         C          1+2
4         D  
5         E          1+2-4
CODE    VALUE
A       100
B       200
D       300
和值表一样

ID        CODE       FORMULA
1         A          
2         B
3         C          1+2
4         D  
5         E          1+2-4
CODE    VALUE
A       100
B       200
D       300
我正试图计算这样一张表

CODE    VALUE
A       100
B       200
C       300
D       300
E       0
任何暗示都将不胜感激

事实上,我用一些rexgexp_替换解决了它,但它工作得太慢了。
谢谢。

我写了一些解决方案,涵盖了您的示例,它可以扩展到做更多的事情,添加新的操作符,实现一些异常处理,等等。您可以看看。此外,如果有必要,您可以采用此解决方案,以便在sql本身中使用


希望这能对您有所帮助。

您能解释一下逻辑吗?至少,您应该能够从PL/SQL解析公式,然后相应地构建一个动态查询。这可能远远不是小事(尤其是您需要支持运算符优先级或函数调用)。或者您仅限于
+
-
?您可以使用regexp\u replace将参考号(ID?)替换为分配给它们的实际值。然后给定的表达式使用动态sql执行。逻辑是我需要用@Rusty所说的实际值替换引用id,但我无法做到这一点。我在php中找不到类似的数组_replace()。我不受+和的限制-