如何在oracle中删除破折号后的文本?

use*_*785 2 regex sql oracle

我在看

replace('ABC-DEF', '-') 
Run Code Online (Sandbox Code Playgroud)

regexp_replace('ABC-DEF', '-$') 
Run Code Online (Sandbox Code Playgroud)

在破折号后帮我删除所有字符,但我找不到符合我想要的功能或表达.这样做有什么好的oracle表达式?

ABC-DEF => ABC
Run Code Online (Sandbox Code Playgroud)

Cra*_*aig 5

我只想使用substr来获取破折号:

select substr(str, 1, instr(str, '-')-1) new_str
from 
(
    select 'ABC-DEF' str
    from dual
)
Run Code Online (Sandbox Code Playgroud)