Regex Oracle-如何获取指定长度和字符后的字符串

Regex Oracle-如何获取指定长度和字符后的字符串,regex,oracle,Regex,Oracle,我有多个以“;”为单位的字符串。我必须在一列中插入这些单词,不幸的是,该列限制为500个字符。在突破500个字符之前,我想在最后一个单词处剪切字符串 我尝试使用REGEXP\u SUBSTR(选择REGEXP\u SUBSTR(col,[^;]+',1,1)),但此查询只返回第一个字符串 无法更改表格。您可以尝试: SELECT REGEXP_REPLACE(SUBSTR(col, 1, 500), ';[^;]*$', '') AS col_out FROM yourTable; 这

我有多个以“;”为单位的字符串。我必须在一列中插入这些单词,不幸的是,该列限制为500个字符。在突破500个字符之前,我想在最后一个单词处剪切字符串

我尝试使用
REGEXP\u SUBSTR(选择REGEXP\u SUBSTR(col,[^;]+',1,1))
,但此查询只返回第一个字符串

无法更改表格。

您可以尝试:

SELECT
    REGEXP_REPLACE(SUBSTR(col, 1, 500), ';[^;]*$', '') AS col_out
FROM yourTable;

这里的逻辑是首先使用
SUBSTR
截断到500个字符。然后我们通过删除最后的分号和后面的(可能是部分的)单词来删除任何可能的尾随词。

@Proxonator抱歉…使用
SUBSTR
。谢谢,这是我需要的。