您好我需要Replace
一个same
字符(发生在多个位置),different
变量为passed
。
在以下模板中,我需要将1st %s
替换为var1
,将2nd %s
替换为var2
。
请参阅以下模板以供参考。
"亲爱的%s,请通知配置文件修改请求 对于%s来说 已批准。请点击以下链接查看详细信息。 <>"
我如何在PL / SQL程序中执行此操作?
暂时我正在编写以下程序
create or replace procedure replace_string()
is
var1 number;
var2 varchar2(1000);
temp varchar2(2000);
begin
select TEMPLATE_BODY into temp
from NOTIFICATIONTMPLT
where id=116;--i get above template from this id
select regexp_count (temp,' %s' ) into var1
from dual;--it select my occurence of %s
for i in 1..var1
loop
SELECT substr (temp,1,INSTR(temp,' %s', 1,i)) into var2
FROM DUAL;
dbms_output.put_line(var2);
end loop;
end;
/
以上程序成功运行。
Output:
Dear
Dear %s,Please be informed that the profile modification request for
在此我不想要middle Dear%
。我知道错误在于再次传递温度但是可以做些什么来摆脱这个问题。
此外,我将传递要在对象中替换的变量,并在循环运行时引用对象项。