任何人都可以帮助我使用oracle中的替换或正则表达式替换函数来重新生成或删除行集,以及要查找和替换的字符串模式。我需要在oracle存储过程中使用某些东西
要从下方文字替换的行
</properties>
<?xml version="1.0"?>
<properties>
XML字符串
<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>
答案 0 :(得分:2)
使用REPLACE
来执行此操作。
select replace('<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>'
,
'</properties>
<?xml version="1.0"?>
<properties>
'
,'')
from dual
输出
<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>
答案 1 :(得分:1)
INSTR函数返回较大字符串中子字符串的字符位置。找到一些文本在字符串中的位置后,自然的下一步是提取它,使用SUBSTR函数
或者您可以直接使用替换功能。