2015-10-20 44 views
0

可以在任何一个帮助我repalce或删除使用替换或正则表达式替换功能设置的行,什么将是查找和替换替换或删除文字的复式行Oracle存储过程

行字符串模式从下面的文字代替

</properties> 

<?xml version="1.0"?> 

<properties> 

文本

<COLLECT_PARALLELGRAMMAR1>global.grxml</COLLECT_PARALLELGRAMMAR1> 

    <COLLECT_INPUTMODES>voice dtmf</COLLECT_INPUTMODES> 

    <CONF_INPUTMODES>dtmf</CONF_INPUTMODES> 

</ROW> 

</properties> 

<?xml version="1.0"?> 

<properties> 

<ROW> 

    <MODULE_NAME>main_menu_phone</MODULE_NAME> 

    <MODULE_DESCRIPTION>Main Menu for Customers with silver membership</MODULE_DESCRIPTION> 

    <MODULE_TYPE>phone</MODULE_TYPE> 

回答

1

如果是纯文本没有XML,那么你可以简单地使用REPLACE

例如,

SQL> WITH DATA AS 
    2 (SELECT ' 
    3 <COLLECT_PARALLELGRAMMAR1>global.grxml</COLLECT_PARALLELGRAMMAR1> 
    4 <COLLECT_INPUTMODES>voice dtmf</COLLECT_INPUTMODES> 
    5 <CONF_INPUTMODES>dtmf</CONF_INPUTMODES> 
    6 </ROW> 
    7 </properties> 
    8 <?xml version="1.0"?> 
    9 <properties> 
10 <ROW> 
11 <MODULE_NAME>main_menu_phone</MODULE_NAME> 
12 <MODULE_DESCRIPTION>Main Menu for Customers with silver membership</MODULE_DESCRIPTION> 
13 <MODULE_TYPE>phone</MODULE_TYPE>' str 
14 FROM dual 
15 ) 
16 SELECT REPLACE(str, '</properties> 
17 <?xml version="1.0"?> 
18 <properties>', '') new_str 
19 FROM data; 

NEW_STR 
-------------------------------------------------------------------------------------------- 

<COLLECT_PARALLELGRAMMAR1>global.grxml</COLLECT_PARALLELGRAMMAR1> 
<COLLECT_INPUTMODES>voice dtmf</COLLECT_INPUTMODES> 
<CONF_INPUTMODES>dtmf</CONF_INPUTMODES> 
</ROW> 

<ROW> 
<MODULE_NAME>main_menu_phone</MODULE_NAME> 
<MODULE_DESCRIPTION>Main Menu for Customers with silver membership</MODULE_DESCRIPTION> 
<MODULE_TYPE>phone</MODULE_TYPE> 
+0

感谢UR suggestion..but这不是text..it一个xml文件获得存储在CLOB类型 – Anirudh

+0

@Anirudh普通不过你刚才提到“*行文字* “在你的问题和主题标题。你没有提到它是** XML **。 –

+0

sorry.initially我想用XML作为text.But它得到存储在clob中,我需要替换字符串的模式,我上面提到然后把clob内容到一个文件 – Anirudh