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: extraer la ruta del directorio de la ruta completa del archivo
Problema: tengo una cadena que contiene la ruta completa a un archivo. ¿Cómo extraer la ruta del directorio de una cadena en Oracle?
Por ejemplo, si tengo una ruta de archivo completa como esta:
'c:windowstempexample.xls'
Quiero recuperar lo siguiente:
'c:windowstemp'
R: Puede crear una función personalizada en Oracle que recuperará la ruta del directorio a partir de un valor de cadena.
La siguiente función llamada get_dir_path extraerá la ruta del directorio. Funciona con rutas de archivo de sistema Windows y UNIX.
CREATE OR REPLACE FUNCTION get_dir_path (p_path IN VARCHAR2) RETURN varchar2 IS v_dir VARCHAR2(1500); BEGIN -- Parse string for UNIX system IF INSTR(p_path,'/') > 0 THEN v_dir := SUBSTR(p_path,1,(INSTR(p_path,'/',-1,1)-1)); -- Parse string for Windows system ELSIF INSTR(p_path,'') > 0 THEN v_dir := SUBSTR(p_path,1,(INSTR(p_path,'',-1,1)-1)); -- If no slashes were found, return the original string ELSE v_dir := p_path; END IF; RETURN v_dir; END;
Después de crear la función anterior, puede hacer referencia a la función en las instrucciones SQL. Por ejemplo,
SELECT get_dir_path('c:windowstempexample.xls') FROM dual;
Esta instrucción SQL devolverá ‘c:windowstemp’.