Pular para o conteúdo
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #81460
    braza
    Participante

      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.

      #81469
      Marcio68Almeida
      Participante

        Olá…
        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…

        #81470
        braza
        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 ???

          #81471
          braza
          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 ???

            #81488
            Marcio68Almeida
            Participante

              Quando 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.

              #81495
              braza
              Participante

                ok. valeu pela dica.

              Visualizando 6 posts - 1 até 6 (de 6 do total)
              • Você deve fazer login para responder a este tópico.
              plugins premium WordPress