Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于分隔符排除特定字符的Oracle字符串操作_Oracle - Fatal编程技术网

基于分隔符排除特定字符的Oracle字符串操作

基于分隔符排除特定字符的Oracle字符串操作,oracle,Oracle,从字符串ES-123456-PSA西班牙-101,我只需要提取ES-123456-101分隔符位置是固定的 尝试了REGEXP_SUBSTR('ES-123456-PSA西班牙-101','[^-]+',2,3),给出了PSA西班牙 是否有办法忽略这些特定字符并返回其余字符。如果需要ES-123456-101,请使用以下方法: SELECT REGEXP_REPLACE('ES-123456-PSA Spain-101', '[^-]+-', '', 1, 3 ) FROM dual; 如果您

从字符串
ES-123456-PSA西班牙-101
,我只需要提取
ES-123456-101
分隔符位置是固定的

尝试了
REGEXP_SUBSTR('ES-123456-PSA西班牙-101','[^-]+',2,3)
,给出了PSA西班牙


是否有办法忽略这些特定字符并返回其余字符。

如果需要
ES-123456-101
,请使用以下方法:

SELECT REGEXP_REPLACE('ES-123456-PSA Spain-101', '[^-]+-', '', 1, 3 )
FROM dual;

如果您想要
ES-12345-101
,那么您能否解释
12345
而不是
123456
的逻辑?键入或省略最后一个字符?

如果需要
ES-123456-101
,请使用以下命令:

SELECT REGEXP_REPLACE('ES-123456-PSA Spain-101', '[^-]+-', '', 1, 3 )
FROM dual;

如果您想要
ES-12345-101
,那么您能否解释
12345
而不是
123456
的逻辑?键入或省略最后一个字符?

您也可以使用
subtr
instr

with t as
(
  select 'ES-123456-PSA Spain-101' as text from dual
)

select substr(text,1,instr(text,'-',1,2)) -- ES-123456-
       ||substr(text,instr(text,'-',1,3)+1) -- 101
from t

您还可以使用
subtr
instr

with t as
(
  select 'ES-123456-PSA Spain-101' as text from dual
)

select substr(text,1,instr(text,'-',1,2)) -- ES-123456-
       ||substr(text,instr(text,'-',1,3)+1) -- 101
from t

只是打错了,对不起,只是打错了,对不起。