我有一个查询,该查询以以下格式返回目标名称: Database_hostname_instance 我只需要从中提取以下部分: 数据库主机名 为此,我尝试使用下面的方法,但是它在字符串'Database'之前给出了字符串,例如'Database regexp_substr(target_name,'^ [^ ] +')
能否请您提出从结尾处第一次出现“ _”的字符串。谢谢。
答案 0 :(得分:2)
如果总是有两个下划线,则可以使用:
select regexp_replace('Database_hostname_instance', '_[^_]*$', '')
from dual
这使最后一个下划线及其后的所有内容失去了作用。
答案 1 :(得分:1)
您还可以使用INSTR
功能
select 'Database_hostname_instance', substr('Database_hostname_instance', 0,
instr('Database_hostname_instance', '_', -1)-1)
from dual;