sql >> Base de Datos >  >> RDS >> Oracle

Cómo resolver el problema con Oracle DBMS_LOB

De la documentación a la que se vinculó :

entonces GRUPO debe evaluar a 'DIR_XML' en lugar de 'C:\XMLS' . Eso se muestra en el ejemplo en esa documentación. (Había un antiguo mecanismo de objeto previo al directorio basado en una ruta almacenada como parámetro de la base de datos, pero eso era menos seguro...)

Si todo lo que tiene es la ruta, puede buscar el nombre del directorio:

select directory_name from all_directories where directory_path = 'C:\XMLS'

teniendo en cuenta que las rutas de los directorios no tienen que ser únicas, por lo que es posible que deba lidiar con duplicados.

Pero como @Matthew ya explicó, y como dice la documentación (énfasis añadido):

La base de datos solo puede ver archivos en su propio sistema de archivos (local o compartido) y no aquellos en los sistemas de archivos del cliente. Si también está ejecutando la base de datos localmente, entonces no hay diferencia (aunque los permisos de directorio y archivo siguen siendo importantes). Si está accediendo a una base de datos remota, entonces no puede ver la unidad C:de su cliente, y si proporciona el nombre del objeto del directorio, seguirá obteniendo algo como:

ORA-22288: file or LOB operation FILEOPEN failed
No such file or directory

Debe colocar sus archivos XML en un directorio en el servidor de base de datos al que tenga acceso la cuenta del sistema operativo y crear un objeto de directorio que apunte a esa ubicación en el servidor; y luego consulte el nombre del objeto del directorio, no la ruta del sistema de archivos subyacente.