如何使用不像内部单引号?

时间:2014-07-04 08:31:25

标签: oracle

我正在尝试以下查询从xml中删除一些属性。

UPDATE table_name 
SET column_name = DELETEXML(xmltype (FILE_NAME), '//path/value[@id not like "%.1"]').getClobVal()   

我想删除id值不像'%。1'的属性。但是不喜欢'方法存在 在单引号内,所以不考虑不作为一种方法。

有人帮我这个

1 个答案:

答案 0 :(得分:1)

'不喜欢'是一个sql函数,你需要使用xpath等价物。

如果你知道只有一个'。'在字符串中然后沿着下面的行应该工作。

UPDATE table_name SET column_name = DELETEXML(xmltype (FILE_NAME), '//path/value[not(substring-after(@id, '.') = "1")]').getClobVal()

如果可能有多个'。'然后它更复杂,但下面的内容应该有效。

UPDATE table_name SET column_name = DELETEXML(xmltype (FILE_NAME), '//path/value[not(substring(@id, string-length(@id) - 2) = ".1")]').getClobVal()