Pular para o conteúdo
  • Este tópico contém 8 respostas, 4 vozes e foi atualizado pela última vez 15 anos, 1 mês atrás por Avatar de rwarstatrwarstat.
Visualizando 9 posts - 1 até 9 (de 9 do total)
  • Autor
    Posts
  • #90552
    Avatar de wfoguelwfoguel
    Participante

      Olá pessoal,
      Pessoal gostaria de saber se alguem conhece algum comando que eu possa utililzar em uma procedure do Oracle, onde eu consiga copiar um arquivo e colar em um servido Linux?

      Gostaria da ajuda de algum, pois não consigo encontrar nada a respeito disto.

      Um forte Abraço a todos.

      Att:
      William
      Analista de Sistemas

      #90555
      Avatar de IshiiIshii
      Participante

        Olá,

        Tenho algumas perguntas:

        Copiar de onde para onde? Do servidor para outra pasta dele mesmo? Ou de um cliente para o Servidor?

        []s Ishii

        #90556
        Avatar de wfoguelwfoguel
        Participante

          Olá,

          Então, seria copiar de um cliente para o Servidor? Pois estou montando algo parecido com o GED, ou seja, tenho que guardar os anexos em uma pasta do servidor Linux.

          Obrigado

          Abraços

          #90557
          Avatar de IshiiIshii
          Participante

            Olá,

            Acho que nesse caso, somente usando os campos tipo LOB e armazenando o anexo direto no Servidor Oracle mesmo… no caso de transferência de arquivos de cliente para servidor teria que fazer FTP etc… e ai somente com Procedure JAVA e permissões no Servidor para o FTP…

            Dê uma olhada na documentação LOB do Oracle para saber mais como armazenar os arquivos no banco de dados mesmo…

            []s Ishii

            #90558
            Avatar de wfoguelwfoguel
            Participante

              Por definição do projeto, resolveram que não vão armazenar no banco de dados, e sim em diretórios no Linux, isto é para não ocupar muito espaço no banco.

              Muito Obrigado.

              #90559
              Avatar de burgaburga
              Participante

                Se eu fosse fazer isto, tentaria o seguinte:

                Como o Ishii disse, enviar o arquivo pra um campo LOB, mas no momento do insert utilizar uma trigger que recria o arquivo no servidor. A trigger de before insert recriaria o arquivo no servidor e limparia o campo LOB antes de ser inserido.

                Só teria que dar uma estudada nos pacotes DBMS_LOB e UTL_FILE.

                Em teoria, isso deve funcionar…

                #90560
                Avatar de wfoguelwfoguel
                Participante

                  Obrigo pelo caminho burga, pois vou dar uma olhada nestes pacotes se eu descobrir algo, eu coloco aki, e se alguem descobrir tb, por favor não deixe de postar aqui.

                  Abraços

                  William

                  #90561
                  Avatar de IshiiIshii
                  Participante

                    [quote=”wfoguel”:3f7buv5w]Por definição do projeto, resolveram que não vão armazenar no banco de dados, e sim em diretórios no Linux, isto é para não ocupar muito espaço no banco.

                    Muito Obrigado.[/quote]

                    Olá,

                    Entendo que alterar uma definição de projeto causa um transtorno em muitos aspectos (principalmente políticos) porém pode ser um ponto interessante para analisar se colocarmos os prós e contras:

                    Armazenar o Anexo no Banco de Dados:
                    Prós:
                    Segurança do Conteúdo: pois em tese, somente que tivesse acesso ao Banco poderia e ainda via aplicação fazer a alteração do conteúdo de um anexo;
                    Segurança de Acesso Externo ao Servidor: que atire a primeira pedra quem nunca trabalhou com um Adm de Rede que tinha uma senha de 15 caracteres sendo 4 númericos 3 de caracteres especiais e ainda com 2 espaços em branco como senha e para conseguir um FTP além da cópia do passaporte tinha deixar uma amostra de sangue para exames de DNA. No Banco de dados seria outra história;
                    Tempo para desenvolvimento: lendo o material e fazendo alguns teste notará que isso não é tão demorado;
                    Consulta do Anexo: com o on context as consultas dentro dos anexos serão muito melhores pois são queries…no caso de ser apenas um arquivo… isso fica mais difícil…
                    Visualização do Conteúdo: como está no Banco, sua aplicação pode fazer isso, se for um anexo somente com o Programa de origem (maquinas sem ADOBE Reader terão que ter instalado para abrir o anexo em pdf)
                    Contras:
                    Espaço em Disco: não tenho muita certeza mas não sei se a diferença será tão grande assim, precisaria de um teste mais apurado;
                    Alguns recursos requerem Oracle Enterprise e isso pode ser mais caro…

                    Não sei se tem mais coisas, mas tente levar isso em consideração e ao Gerente do Projeto para que isso seja analisado e se valer a pena, trocar essa definição… Mas ainda a decisão é de vocês 😀

                    []s Ishii

                    #90562
                    Avatar de rwarstatrwarstat
                    Participante

                      Quanto ao espaço utilizado não tem muita diferença, pois a alocação será de acordo com o quê o campo BLOB vai utilizar.

                      Se estiver usando o 10g é tranqüilo de trabalhar com LOB. A dbms_lob te fornece tudo o que precisa para salvar no banco e gravar no disco. Se forutilziar 9i ou anterior terá que usar uma procedure em java para trabalhar com BLOB.

                      Li em algum lugar, não me lembro onde, que o 10g tem uma package específica para fazer cópias de arquivos no servidor sem utilizar os comandos do SO. Teria que dar uma pesquisada novamente no Google sobre isso.

                      Abraço,
                      Roberto

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