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()。我不受+和的限制-