【问题标题】:Oracle SQL - convert string into formula?Oracle SQL - 将字符串转换为公式?
【发布时间】:2018-10-17 06:40:32
【问题描述】:

我想知道是否有办法将 Oracle SQL 中的字符串转换为公式。例如

我有一个带有星号而不是逗号或斜杠的 sys_connect_by_path 的 connect_by 字符串,并且我想计算公式。这是:

"=1*3.4693*48*3*1"

在特定列中。当然,每一行都有不同的计算。

我希望拥有: SELECT 函数('= 1 + 1') FROM DUAL;

【问题讨论】:

  • 你可以使用execute immediate
  • 可以在简单的“选择”查询中执行吗?
  • 。 .不,您需要使用 PL/SQL。
  • 创建一个传入公式的函数并在返回结果的函数内立即执行?看起来这个答案可能会有所帮助:stackoverflow.com/questions/2919168/…
  • 不,我不能使用 PL/SQL 也不能创建任何函数或过程。我需要它在表中执行。

标签: sql oracle


【解决方案1】:

根据表达式的内容,您也许可以使用 XML / XPath 来完成

select xmlquery(replace( '1*3.4693*48*3*1', '/', ' div ' ) 
      returning content ) .getNumberVal()   
from dual;

返回 499.5792

https://www.w3schools.com/xml/xpath_operators.asp

【讨论】:

  • 谢谢。我会在我的查询中尝试明天的第一件事。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 2011-05-27
  • 1970-01-01
相关资源
最近更新 更多