【发布时间】:2020-03-17 06:39:46
【问题描述】:
https://dbfiddle.uk/?rdbms=oracle_18&fiddle=94771b6589b01526ad0cf6e5c4d01945
我需要帮助从文件名中提取数字子字符串
目前用于文件格式 - 'monkey_eats_mango_everyday_202002.txt'
我们是这样做的
select regexp_substr('monkey_eats_mango_everyday_202002.txt', '\d+') as parameter12a
from dual;
结果-
202002
这又在更大的查询中用于获取此日期的最后日期,如下所示
select to_char(last_day(to_date(regexp_substr('monkey_eats_mango_everyday_202002.txt', '\d+'), 'yyyymm')), 'yyyymmdd') as parameter
from dual ;
结果-
20200229
现在文件格式已经改变了,所以我们有了 - 'donkey_eats_pines_cones_20192301_7771234_everyday_202002.txt'
在这种文件格式中,其他地方有数字,例如 201943_7771234,可以是日期或任何随机数,所以我需要可以从文件格式中提取 202002 的正则表达式
select regexp_substr('donkey_eats_pines_cones_201943_7771234_everyday_202002.txt', '\d+') as parameter12a
from dual;
【问题讨论】:
标签: sql regex oracle regexp-substr