如何从路径中提取根目录

时间:2017-01-31 11:54:27

标签: sql regex oracle oracle12c

我试图通过获取路线的第一个目录来制作正则表达式。

例如:

/home/oracle/file1.dbf
/home/oracle/file2.dbf
/usr/oracle/file3.dbf
/usr/oracle/file3.dbf

你应该回复:

/home
/home
/usr
/usr

我尝试过以下查询:

SELECT substr(file_name,instr(file_name,'/')-1) as FILE_NAME
FROM   dba_data_files;

1 个答案:

答案 0 :(得分:1)

语法为SUBSTR( string, start_position, substring_length ),因此您希望从第1个字符开始,长度是第2次出现的斜杠字符的位置,可以使用INSTR( string, substring, start_position, occurrence )找到:

SELECT SUBSTR(
         file_name,
         1,
         INSTR( file_name, '/', 1, 2 ) - 1
       ) AS root_directory
FROM   dba_data_files;