【发布时间】:2019-05-20 21:25:41
【问题描述】:
我正在编写一个查询,该查询需要从其目录位置获取文件名,而不需要其文件路径和文件扩展名
示例:如果存在路径c:\temp\example.xls,我需要查询的结果作为示例。
我参考了网站https://www.techonthenet.com/oracle/questions/filename.php,它显示了一种获取带有扩展名的文件名的方法。我想知道是否有另一种方法来获取文件名。
这是我使用的代码:
CREATE or REPLACE function get_filename
(p_path IN VARCHAR2)
RETURN varchar2
IS
v_file VARCHAR2(100);
BEGIN
-- Parse string for UNIX system
IF INSTR(p_path,'/') > 0 THEN
v_file := SUBSTR(p_path,(INSTR(p_path,'/',-1,1)+1),length(p_path));
-- Parse string for Windows system
ELSIF INSTR(p_path,'\') > 0 THEN
v_file := SUBSTR(p_path,(INSTR(p_path,'\',-1,1)+1),length(p_path));
-- If no slashes were found, return the original string
ELSE
v_file := p_path;
END IF;
RETURN v_file;
END;
它创建一个函数来从带有扩展名的位置获取文件名。
SELECT get_filename('c:\temp\example.xls')
FROM dual;
此 SQL 语句将返回 example.xls。有没有办法只得到 example 作为结果。
【问题讨论】:
标签: sql database oracle select plsql