Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
Oracle/PLSQL: extraiga el nombre de archivo de la ruta de archivo completa (incluido el sufijo)
Problema: tengo una cadena que contiene la ruta completa a un archivo. ¿Cómo extraer el nombre de archivo (incluido el sufijo) de una cadena en Oracle?
Por ejemplo, si tengo una ruta de archivo completa como esta:
'c:windowstempexample.xls'
Quiero recuperar lo siguiente:
'example.xls'
R: Puede crear una función personalizada en Oracle que recuperará el nombre de archivo de un valor de cadena.
La siguiente función llamada get_filename extraerá la ruta del directorio. Funciona con rutas de archivo de sistema Windows y UNIX.
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;
Después de crear la función anterior, puede hacer referencia a la función en las instrucciones SQL. Por ejemplo,
SELECT get_filename('c:tempexample.xls') FROM dual;
Esta instrucción SQL devolverá “example.xls”.