Oracle
 sql >> Database >  >> RDS >> Oracle

Come risolvere il problema con Oracle DBMS_LOB

Da la documentazione a cui hai collegato :

quindi GRUPO dovrebbe restituire 'DIR_XML' anziché 'C:\XMLS' . Ciò è mostrato nell'esempio in quella documentazione. (C'era un vecchio meccanismo di pre-directory-oggetto basato su un percorso memorizzato come parametro del database, ma era meno sicuro...)

Se tutto ciò che hai è il percorso puoi cercare il nome della directory:

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

tenendo presente che i percorsi delle directory non devono essere univoci, quindi potresti dover gestire i duplicati.

Ma come ha già spiegato @Matthew e come dice la documentazione (enfasi aggiunta):

Il database può vedere solo i file sul proprio filesystem - locale o condiviso - e non quelli sui filesystem client. Se stai eseguendo il DB anche localmente, non c'è differenza (sebbene le autorizzazioni di directory e file siano ancora importanti). Se stai accedendo a un DB remoto, non può vedere il tuo client C:drive e se dai il nome dell'oggetto directory otterrai comunque qualcosa del tipo:

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

Devi inserire i tuoi file XML in una directory sul server DB a cui ha accesso l'account del sistema operativo e creare un oggetto directory che punti a quella posizione sul server; e quindi fare riferimento al nome dell'oggetto directory, non al percorso del filesystem sottostante.