sql >> Databáze >  >> RDS >> Oracle

Jak vyřešit problém s Oracle DBMS_LOB

Z dokumentace, na kterou jste odkazovali :

takže GRUPO by měl být vyhodnocen jako 'DIR_XML' spíše než 'C:\XMLS' . To je ukázáno na příkladu v této dokumentaci. (Existoval starý mechanismus pre-directory-object založený na cestě uložené jako parametr databáze, ale to bylo méně bezpečné...)

Pokud máte pouze cestu, můžete vyhledat název adresáře:

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

mějte na paměti, že cesty k adresářům nemusí být jedinečné, takže se možná budete muset vypořádat s duplikáty.

Ale jak již vysvětlil @Matthew a jak uvádí dokumentace (zvýraznění přidáno):

Databáze může vidět pouze soubory na svém vlastním souborovém systému – lokálním nebo sdíleném – a ne soubory na klientských souborových systémech. Pokud spouštíte DB lokálně, pak není žádný rozdíl (ačkoli na oprávněních k adresářům a souborům stále záleží). Pokud přistupujete ke vzdálené databázi, pak ta nemůže vidět váš klientský disk C:, a pokud zadáte název objektu adresáře, stále dostanete něco jako:

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

Musíte umístit své soubory XML do adresáře na serveru DB, ke kterému má účet operačního systému přístup, a vytvořit objekt adresáře, který ukazuje na toto umístění na serveru; a pak odkazujte na název objektu adresáře, nikoli na cestu k základnímu souborovému systému.



  1. pg_dump ignoruje sekvenci tabulky?

  2. MySQL 5.7.5+ získá první řádek pro skupiny

  3. Jak nakonfigurovat znakovou sadu UTF8 v Oracle?

  4. SQL Server Změna názvu databáze