Splitting variable content in SQL

I have a variable in a stored procedure that contains a string of characters like

[Tag]MESSAGE[/Tag]

I need a way to get the MESSAGE part from within the tags. Any help would be much appreciated


Solution 1:

Note: I have tested it on Oracle RDBMS

A more reliable approach is to use REGEXP_REPLACE.

REGEXP_REPLACE(value, pattern)

Example

SELECT  REGEXP_REPLACE(
        '<Tag>Message</Tag>',
         '\s*</?\w+((\s+\w+(\s*=\s*(".*?"|''.*?''|[^''">\s]+))?)+\s*|\s*)/?>\s*') FROM DUAL;
         

Just replace "<" with "[" if your tags are different