Domanda

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

mycursor has parm1 parm2 and parm3 that param have value.

CURSOR mycursor IS

SELECT parm, value FROM &VIEW;

How can mystring parm(<parm>) replace value form the mycusor

After create new mystring it look like bellow(parm1 = value1, parm2 = value2, parm3 = value3)

mystring := 'abc/dd/value1kkkvalue2.Tvalue3';
È stato utile?

Soluzione

Try something like the following:

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;

Share and enjoy.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top