如何从oracle中现有的xml子树中删除命名空间

如何从oracle中现有的xml子树中删除命名空间,oracle,Oracle,我面临着从现有xml子树中删除名称空间的问题 例如:我有一个表,其中有1个字段-数据类型xmltype。一个条目包含以下xml: <Item xmlns="http://www.w3.org/2001/XMLSchema-instance"> <Box>Blaff</Box> <Door>Steal</Door> <Chair>Wood</Chair> </Item> 我想删除名称空间-

我面临着从现有xml子树中删除名称空间的问题

例如:我有一个表,其中有1个字段-数据类型xmltype。一个条目包含以下xml:

<Item xmlns="http://www.w3.org/2001/XMLSchema-instance">
  <Box>Blaff</Box>
  <Door>Steal</Door>
  <Chair>Wood</Chair>
</Item>
我想删除名称空间-即:

<Item>
  <Box>Black-box</Box>
  <Door>Steal</Door>
  <Chair>Wood</Chair>
</Item>
你有什么建议吗我尝试使用更新功能,但没有成功。
非常感谢您的帮助。

一个方法是将其转换为clob,然后替换名称空间字符串并将其转换回xml:

            with xtab as (
            select xmltype('<Item xmlns="http://www.w3.org/2001/XMLSchema-instance">
              <Box>Blaff</Box>
              <Door>Steal</Door>
              <Chair>Wood</Chair>
            </Item>') my_xml from dual)
            select xmltype(replace(xmltype.getclobval(my_xml), 
                          ' xmlns="http://www.w3.org/2001/XMLSchema-instance"', ''))  clo
            from xtab;