Oracle SQL - 提取<>来自LONG Type列的标记值

时间:2017-06-22 04:41:22

标签: sql oracle oracle-sqldeveloper longtext

我的表格中包含 LONG TYPE 的列名称“messages” 消息列包含

之类的数据
<trans><body></body>...</trans>

我想仅在<body>标记内提取信息并选择它。如何使用SQL查询获取该信息?

1 个答案:

答案 0 :(得分:0)

您可以使用SUBSTR()来提取它。使用INSTR()函数确定body标记的起始位置,添加6以补偿标记长度。对于要转到的字符数,使用另一个INSTR()来查找结束体标记,然后减去开放标记长度。

SELECT SUBSTR(my_column, INSTR(my_column,'<body>') + 6,
    INSTR(my_column,'</body>') - INSTR(my_column,'<body>') - 5) AS body_extracted
FROM my_table