查找具有精确长度的Oracle regexp的SUBSTRING

时间:2016-09-08 09:09:16

标签: sql oracle oracle11g

我正在尝试从Oracle表的列中获取子字符串。

例如 我的数据是 “感谢您注册我们,您的注册号码ABC34252确认您的空房情况。” 现在我想要一个将检索ABC34252的查询。这个注册号码的大小是固定的,但问题是完整的短信在不同的情况下会有所不同。

请帮助

1 个答案:

答案 0 :(得分:1)

无论完整测试消息的大小如何,这都将起作用。它将选择字母数字字符。

案例1:字符串长度为----

select regexp_substr('Thanksing wi no.ABC34252 Confirm your availability.','[[:alpha:]]+[[:digit:]]+' )  Output,
       length('Thanksing wi no.ABC34252 Confirm your availability.')  Stringlen
from dual;

案例2:字符串长度不同----

select regexp_substr('Thanksingakdakjdshsak djsahdjsahdk sa o.ABC34252 Confirm your availability.','[[:alpha:]]+[[:digit:]]+' )  Output,
        length('Thanksingakdakjdshsak djsahdjsahdk sa o.ABC34252 Confirm your availability.') Stringlen
from dual;