-3

请任何人都可以给出一些想法,如何用 Oracle 中的值替换字符串集。例如:-

String Formula: (20+OFR)/(10-OGR) 需要更换OFR=100 and OGR=50

字符串公式是动态变化的。

预期结果 (20+OFR)/(10-OGR)= (20+100)/(10-50)

4

2 回答 2

0

要回答您的基本问题“如何在 oracle 中用值替换字符串集”,请查看Oracle 中对正则表达式的支持。例如,您可以通过以下方式实现您的示例:

select 
      REGEXP_REPLACE( REGEXP_REPLACE('(20+OFR)/(10-OGR)',
                     'OFR',
                     '100'), 'OGR',50)
      as "names after regexp"
      from DUAL;

除此之外,您可能会有更多的编码,类似于上面 Burhan 显示的内容。希望有帮助。

于 2016-02-26T16:30:50.047 回答
0

我不知道你想要达到什么目的。但是,如果要创建动态公式,则必须使用 select 语句:从 dual 中选择“您的公式”以获得结果。

这是一个示例代码:

declare
v_ofr NUMBER :=100 ;
v_ogr NUMBER := 50;
v_sql   VARCHAR2(500);
BEGIN

v_sql := 'select (20+ ' || v_ofr || ')/(10-' || v_ogr ||') from dual';

execute immediate v_sql;

DBMS_OUTPUT.PUT_LINE ( v_sql);

end;
于 2016-02-26T10:01:18.560 回答