oracle sql 匹配clob字符串ToDate:""20180208"" PutCall:""C"" Strike:1.023 asdhjfasd )(Notice1:""20140205"" Notice2:""20190205"" FromDate:""20190208""中的Strike:1.023
时间: 2023-07-08 21:49:15 浏览: 85
将长于4000字符的字符串转化为CLOB类型存入数据库
4星 · 用户满意度95%
匹配 CLOB 字符串中的 Strike 值,可以使用类似上面的正则表达式,只需要将匹配数字部分的正则表达式修改为 `\d+(\.\d+)?` 即可。具体的 SQL 语句如下:
```
SELECT REGEXP_REPLACE(REGEXP_SUBSTR(clob_column, 'Strike:\s*\d+(\.\d+)?\s+'), '[^0-9\.]', '') AS Strike
FROM your_table
WHERE your_condition;
```
其中,clob_column 是包含 CLOB 字符串的列名,your_table 是包含该列的表名,your_condition 是你的查询条件。这个 SQL 语句会返回匹配到的 Strike 值,如果没有匹配到,则返回空字符串。
正则表达式 `Strike:\s*\d+(\.\d+)?\s+` 匹配以 Strike: 开头,后面跟着 0 个或多个空格,然后是一个或多个数字,可以包含一个小数点和更多数字,最后再跟着 1 个或多个空格。函数 REGEXP_SUBSTR 返回匹配到的字符串,然后函数 REGEXP_REPLACE 将所有的非数字和非小数点的字符替换为空字符串,最后得到的就是匹配到的 Strike 值。
阅读全文