获取特定字符plsql后面的单词

vlf7wbxs  于 2021-07-29  发布在  Java
关注(0)|答案(2)|浏览(270)

我想在pl/sql中获取特定字符后面的单词
例如:
文本='2-99-7051b'
我想看7051b,意思是在第二个“-”到最后一个字符之后。

function try ( text in varchar2 )
is begin
 v_textout varchar2(100) := '';
 --some process
 return v_textout;
end;
nhn9ugyo

nhn9ugyo1#

不需要pl/sql来提取所需的部分。使用两种替代方法 REGEXP_REPLACE() 以及 REGEXP_SUBSTR() 正则表达式函数

WITH t(text) AS
(
 SELECT '2 - 99 - 7051B' FROM dual
)
SELECT REGEXP_REPLACE(text,'(.*- )(\S+)','\2') AS first_method,
       REGEXP_SUBSTR(text,'[^- ]+$') AS second_method
  FROM t;

FIRST_METHOD    SECOND_METHOD
------------    -------------
7051B           7051B

演示
其中,破折号字符后面的空格是根据示例故意保留的,并且加上( + )表示匹配的一个或多个事件。

xa9qqrwz

xa9qqrwz2#

我找到了解决办法:

select substr(text , instr(text , '-', 1, 2) + 1, length(text))
      from dual;

相关问题