Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como resolver problema com Oracle DBMS_LOB


De a documentação à qual você vinculou :

então GRUPO deve avaliar para 'DIR_XML' em vez de 'C:\XMLS' . Isso é mostrado no exemplo dessa documentação. (Havia um antigo mecanismo de objeto de pré-diretório baseado em um caminho armazenado como um parâmetro de banco de dados, mas isso era menos seguro...)

Se tudo o que você tem é o caminho, você pode procurar o nome do diretório:
select directory_name from all_directories where directory_path = 'C:\XMLS'

tendo em mente que os caminhos de diretório não precisam ser únicos, então você pode ter que lidar com duplicatas.

Mas como @Matthew já explicou, e como diz a documentação (enfase adicionada):

O banco de dados só pode ver arquivos em seu próprio sistema de arquivos - local ou compartilhado - e não nos sistemas de arquivos clientes. Se você também estiver executando o banco de dados localmente, não haverá diferença (embora as permissões de diretório e arquivo ainda sejam importantes). Se você estiver acessando um banco de dados remoto, ele não poderá ver sua unidade C:do cliente e, se você fornecer o nome do objeto de diretório, ainda obterá algo como:
ORA-22288: file or LOB operation FILEOPEN failed
No such file or directory

Você precisa colocar seus arquivos XML em um diretório no servidor de banco de dados ao qual a conta do sistema operacional tem acesso e criar um objeto de diretório que aponte para esse local no servidor; e, em seguida, consulte o nome do objeto do diretório, não o caminho do sistema de arquivos subjacente.