Regex 正则表达式-在oracle中用值替换字符串集

Regex 正则表达式-在oracle中用值替换字符串集,regex,regexp-replace,regexp-substr,Regex,Regexp Replace,Regexp Substr,请任何人都能给出一些想法,如何在Oracle中用值替换字符串集。例如:- 字符串公式:(20+OFR)/(10-OGR) 需要更换OFR=100和OGR=50的 字符串公式正在动态更改 预期结果(20+OFR)/(10-OGR)=(20+100)/(10-50)我不知道你想要达到什么。但是,如果要创建动态公式,必须使用select语句:从dual中选择“您的公式”以获得结果 下面是一个示例代码: declare v_ofr NUMBER :=100 ; v_ogr NUMBER := 50; v

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

字符串公式:(20+OFR)/(10-OGR)
需要更换OFR=100和OGR=50的

字符串公式正在动态更改


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

我不知道你想要达到什么。但是,如果要创建动态公式,必须使用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;

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

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

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

一个迭代的
replace
应用程序不应该满足这种工作吗?用
替换(,'OFR',),'OGR',)
?我看错了吗?谢谢Musakkhir,你能给我一些想法来迭代这个字符串吗。这个公式是从列中得到的吗?要替换的代码是否总是在结账前正确?然后您会在PL/SQL代码中选择它,进行替换并使用公式吗?请通过使用编辑链接编辑您的帖子并更新标签,提供更多关于环境和预期用途的信息。感谢@Burhan,我不希望出现这种情况,我必须创建一个SP,其中公式列具有(20+OFR)/(10-OGR),可以根据用户选择动态更改,现在无论他们在何处放置类似字符串的OFR,OGR将替换为相应的值。