- Este tópico contém 5 respostas, 2 vozes e foi atualizado pela última vez 17 anos, 11 meses atrás por
braza.
-
AutorPosts
-
19 de março de 2008 às 6:58 pm #81460
braza
ParticipanteOlá pessoal,
Tenho a seguinte procedure na minha base de dados:
create or replace procedure prc_teste_blob
is/*
CREATE OR REPLACE DIRECTORY DIR_ARQ_BLOB AS ‘C:TESTE_LOB’
*/
PathArq bfile;
ArqCLOB blob;begin
PathArq := BFILENAME(‘DIR_ARQ_BLOB’,’empresa.xml’);
sys.dbms_lob.createtemporary(ArqCLOB,true);
sys.dbms_lob.open(PathArq,dbms_lob.file_readonly);
sys.dbms_lob.loadfromfile(ArqCLOB,PathArq,dbms_lob.getlength(PathArq));
sys.dbms_lob.close(PathArq);
———————-
insert into ab_tmp_teste_blob(nom_fornec,arq_nota_xml)
values(‘AILTON BRAZ’,ArqCLOB);commit;
end prc_teste_blob;
bom…
Quando executo esta procedure na base de dados que está na minha máquina, juntamente com o arquivo que estou querendo armazenar. Funciona perfeitamente.
Mas, quando crio esta procedure em uma base de dados que está em um outro servidor, e tento armazenar nele, através da execução dessa procedure pela minha máquina, a figura que se encontra também na minha máquina, o Oracle me reporta o seguinte erro:
ORA-22288: File or lob operations fileopen failed. No such file or directory.
Então…
Como faço para armazenar um arquivo que esteja em qualquer máquina da minha rede, nesse servidor de banco de dados, através deste procedimento ????
grato,
Braza.
20 de março de 2008 às 7:00 pm #81469Marcio68Almeida
ParticipanteOlá…
Você tem que lembrar que quem está executando a procedure é o servidor onde se encontra o banco, não no client de sua máquina, portanto ele vai procurar no disco C do servidor, se não existir o arquivo ou o diretório E se ele não tiver direito de ler esse arquivo e diretório, vai dar erro mesmo…
Funciona no banco de sua máquina justamente por que o arquivo está no mesmo servidor do banco, isto é, na sua máquina…20 de março de 2008 às 8:14 pm #81470braza
ParticipanteOk. Agora relamente entendi.
Mas ainda tenho uma dúvida.
Eu baixei o aplicativo chamado “OraLobEditor.exe”. Este aplicativo foi instalado e é executado na minha máquina e acessa o outro servidor de banco de dados.
Com ele eu consigo selecionar o arquivo, que está na minha maquina, e gravo ele no banco que esta no servidor.
Este processo ficou implícito pra mim. Como o aplicativo consegue fazer isso ???
20 de março de 2008 às 8:19 pm #81471braza
Participante
Ok. Agora relamente entendi.
Mas ainda tenho uma dúvida.
Eu baixei o aplicativo chamado “OraLobEditor.exe”. Este aplicativo foi instalado e é executado na minha máquina e acessa o outro servidor de banco de dados.
Com ele eu consigo selecionar o arquivo, que está na minha maquina, e gravo ele no banco que esta no servidor.
Este processo ficou implícito pra mim. Como o aplicativo consegue fazer isso ???
24 de março de 2008 às 5:06 pm #81488Marcio68Almeida
ParticipanteQuando você roda uma procedure, ele é executado no banco de dados, quando você executa um programa, ele é executado em sua máquina, por isso você consegue executar.
Para que o processo funcione em qualquer máquina, você pode colocar o programa em um servidor e cada estação que necessitar executar o processo, basta chamar o programa e carregar o arquivo a partir de sua própria máquina.24 de março de 2008 às 10:52 pm #81495braza
Participanteok. valeu pela dica.
-
AutorPosts
- Você deve fazer login para responder a este tópico.