用字符串中的不同变量替换相似的字符

时间:2014-09-30 10:48:28

标签: oracle stored-procedures plsql substr

您好我需要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%。我知道错误在于再次传递温度但是可以做些什么来摆脱这个问题。 此外,我将传递要在对象中替换的变量,并在循环运行时引用对象项。

0 个答案:

没有答案