我试图通过获取路线的第一个目录来制作正则表达式。
例如:
/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;
答案 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;