【发布时间】:2016-06-17 09:10:12
【问题描述】:
我在 Oracle sql 中运行以下命令。我能够获得我想要的结果,但想了解如何应用替代方案。我想提取总是从第 18 个字符开始的名称,但名称和后面的字符总是不同。
示例: "分配给组 5678 中的用户 John Smith"
这可以在表 history.description 中找到。
如果我使用 SUBSTR (HISTORY.DESCRIPTION, 18, INSTR (HISTORY.DESCRIPTION,' in')-18 AS NAME
我得到了我想要的“John Smith”结果
我正在尝试 SUBSTR (HISTORY.DESCRIPTION,18, REGEXP_SUBSTR (HISTORY.DESCRIPTION, '(\S*)(\w)', 'in')
Ora 01722 无效号码错误是我得到的。
我不明白如何应用此功能
【问题讨论】:
-
请仔细阅读文档,docs.oracle.com/cd/B12037_01/server.101/b10759/functions116.htm 说第三个参数 position 必须是正数或负数数字,而你是传递一个字符串
in。
标签: string oracle function oracle11g regexp-substr