【问题标题】:Extract a substring from a field PLSQL从字段 PLSQL 中提取子字符串
【发布时间】:2020-07-05 12:56:59
【问题描述】:

我只是从PL/SQL 开始,我需要从存储了大约 4,000 个字符的所有 XML 文本的字段中提取某些信息,如果不是更多,请查阅相应的文档函数SUBSTR或函数我REGEXP_SUBSTR不知道在我的情况下可以使用哪一个。

从我存储在字段中的所有文本中,我需要准确提取一个特定数据,以下只是我在字段中的一部分文本。

fechaAutenticacion="2019-10-17T17:14:23"

我需要从这部分文本中提取它包含的内容fechaAutenticacion,我的意思是这部分2019-10-17T17:14:23 没有引号,然后将其显示在新列中。

以下是对表格和字段的查询,其中我有超过 4,000 个字符的所有文本。

SELECT SPRCMNT_TEXT_NAR
        FROM SPRCMNT

【问题讨论】:

    标签: sql regex oracle plsql substr


    【解决方案1】:

    假设模式''fechaAutenticacion="<DATE>"' 始终表示您要捕获的部分,您可以像这样使用regexp_substr()

    select regexp_substr(sprcmnt_text_nar, 'fechaAutenticacion="([^"]+)"', 1, 1, null, 1) authentication_date
    from sprcmnt
    

    括号定义了字符串匹配部分中的捕获组;然后,最后一个参数告诉 Oracle 返回第一个(唯一)捕获的组,而不是全部匹配。

    【讨论】:

      【解决方案2】:

      我很想使用regexp_replace()

      select regexp_replace(sprcmnt_text_nar, '^.*fechaAutenticacion="([^"])".*$', '\1') 
      

      【讨论】:

        猜你喜欢
        • 2019-12-21
        • 2011-07-21
        • 1970-01-01
        • 1970-01-01
        • 2018-09-29
        • 2021-12-23
        • 1970-01-01
        • 2011-10-13
        相关资源
        最近更新 更多