Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查找具有精确长度的Oracle regexp的子字符串_Sql_Oracle_Oracle11g - Fatal编程技术网

Sql 查找具有精确长度的Oracle regexp的子字符串

Sql 查找具有精确长度的Oracle regexp的子字符串,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,我正在尝试从Oracle表的列中获取子字符串 例如。 我的数据是 “感谢您向我们注册,您的注册号ABC34252确认您的可用性。” 现在,我需要一个查询来检索ABC34252。此注册号的大小是固定的,但问题是完整的文本消息在不同的情况下有所不同 请帮助无论完整测试消息的大小,此操作都有效。它将选择字母数字字符 案例1:字符串长度为-- 案例2:字符串长度不同-- select regexp_substr('Thanksingakdakjdshsak djsahdjsahdk sa o.ABC34

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

例如。 我的数据是 “感谢您向我们注册,您的注册号ABC34252确认您的可用性。” 现在,我需要一个查询来检索ABC34252。此注册号的大小是固定的,但问题是完整的文本消息在不同的情况下有所不同


请帮助

无论完整测试消息的大小,此操作都有效。它将选择字母数字字符

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

案例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;

您应该将ABC34252单独存储在另一列中。并将其添加到消息run-time中。@jarlh:这就是我要问的,这些字符串是从第三方获取并存储在表中的。为了将ABC34252存储在单独的列中,我问了一个问题。您想要实现什么算法?您是在寻找“三个大写字母加六个数字”形式的字符串吗?据推测,文本中可能有9个字符的单词不是您要查找的数字(即“algorithm”是一个9个字符的单词,但您可能不想匹配)。非常感谢,得到了预期的结果。两个查询都是相同的。我不明白其中的区别。
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;