sql >> Databasteknik >  >> RDS >> Oracle

Hur man löser problem med Oracle DBMS_LOB

Från dokumentationen du länkade till :

alltså GRUPO bör utvärderas till 'DIR_XML' istället för 'C:\XMLS' . Det visas i exemplet i den dokumentationen. (Det fanns en gammal pre-directory-object-mekanism baserad på en sökväg lagrad som en databasparameter, men den var mindre säker...)

Om allt du har är sökvägen kan du slå upp katalognamnet:

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

med tanke på att katalogsökvägar inte behöver vara unika, så du kan behöva hantera dubbletter.

Men som @Matthew redan förklarat, och som dokumentationen säger (min kursivering):

Databasen kan bara se filer på sitt eget filsystem - lokalt eller delat - och inte de på klientfilsystem. Om du också kör DB lokalt så är det ingen skillnad (även om katalog- och filbehörigheter fortfarande spelar roll). Om du har åtkomst till en fjärrdatabas kan den inte se din klient C:-enhet, och om du ger katalogobjektets namn får du fortfarande något i stil med:

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

Du måste lägga dina XML-filer i en katalog på DB-servern som operativsystemskontot har åtkomst till, och skapa ett katalogobjekt som pekar till den platsen på servern; och hänvisa sedan till katalogobjektets namn, inte den underliggande sökvägen till filsystemet.



  1. Räkna med LEFT JOIN visar endast en rad

  2. ST_Distance_Sphere i mysql ger inte exakt avstånd mellan två platser

  3. MySQL Group_Concat Upprepande värden

  4. Implementering av SQL Server Performance Indicator för frågor, lagrade procedurer och triggers