我正在尝试编写一个Oracle SQL查询,该查询可以采用动态生成的字符串并将其转换为数学表达式,例如:'1 * 2 * 1 * 3 * 2'将评估为12。
我已完成Google搜索,但我能找到的唯一特定于Oracle的示例是需要使用PL / SQL存储函数的示例。这不是我的选择,因为我的组织的生产数据库没有'CREATE'权限。由于我经常需要针对生产数据库对SQL代码进行故障排除,因此我避免在报表开发工具(LogiInfo)中使用存储过程或存储函数。
所以...我希望找到的是某种类型的'内置'函数,我可以直接放入一个SQL语句,它将执行我的开头句中描述的转换和评估。任何指导将不胜感激。
P.S。我正在使用Oracle 11g
答案 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;
/