如何在Oracle SQL中将字符串转换为数学表达式?

时间:2014-04-11 13:22:11

标签: sql oracle

我正在尝试编写一个Oracle SQL查询,该查询可以采用动态生成的字符串并将其转换为数学表达式,例如:'1 * 2 * 1 * 3 * 2'将评估为12。

我已完成Google搜索,但我能找到的唯一特定于Oracle的示例是需要使用PL / SQL存储函数的示例。这不是我的选择,因为我的组织的生产数据库没有'CREATE'权限。由于我经常需要针对生产数据库对SQL代码进行故障排除,因此我避免在报表开发工具(LogiInfo)中使用存储过程或存储函数。

所以...我希望找到的是某种类型的'内置'函数,我可以直接放入一个SQL语句,它将执行我的开头句中描述的转换和评估。任何指导将不胜感激。

P.S。我正在使用Oracle 11g

1 个答案:

答案 0 :(得分:5)

如果你可以使用SQLPLus,你可以执行匿名的plsql代码块。

示例:

set serveroutput on

declare
   i pls_integer;
begin
   execute immediate 'select 1*2*1*3*2 from dual'
      into i;
   dbms_output.put_line(i);
end;
/