P / L sql使用CURSOR替换字符串

时间:2014-04-18 10:09:41

标签: plsql substring

mystring := 'abc/dd/<parm1>kkk<parm2>.T<parm3>';

mycursor有parm1 parm2和parm3,param有值。

CURSOR mycursor IS

SELECT parm, value FROM &VIEW;

mystring parm (<parm>)如何替换mycusor的值

创建新的mystring后,它看起来像下面(parm1 = value1,parm2 = value2,parm3 = value3)

mystring := 'abc/dd/value1kkkvalue2.Tvalue3';

1 个答案:

答案 0 :(得分:1)

尝试以下内容:

DECLARE
  mystring VARCHAR2(200) := 'abc/dd/<parm1>kkk<parm2>.T<parm3>';
BEGIN
  DBMS_OUTPUT.PUT_LINE('Before parameter replacement, mystring=''' ||
                       mystring || '''');

  FOR aRow IN (SELECT parm, value FROM SOME_VIEW) LOOP
    mystring := REPLACE(mystring, '<' || aRow.parm || '>', aRow.value);
  END LOOP;  -- aRow

  DBMS_OUTPUT.PUT_LINE('After parameter replacement, mystring=''' ||
                       mystring || '''');
END;

分享并享受。