- Este tópico contém 5 respostas, 2 vozes e foi atualizado pela última vez 16 anos, 10 meses atrás por braza.
-
AutorPosts
-
19 de março de 2008 às 6:58 pm #81460brazaParticipante
Olá 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 #81469Marcio68AlmeidaParticipanteOlá…
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 #81470brazaParticipanteOk. 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 #81471brazaParticipante
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 #81488Marcio68AlmeidaParticipanteQuando 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 #81495brazaParticipanteok. valeu pela dica.
-
AutorPosts
- Você deve fazer login para responder a este tópico.