Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

priajf

Importando arquivo zip

Recommended Posts

Já criei esse topico no Mysql, mais não tinha visto esse post aqui.

ENtão lá vai minha dúvida

 

Preciso importar um arquivo que está em .zip. Como faço para importar nesse caso.

Estou usando aqui o forms builder..

 

 

Desde já agradeço

Att

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro passo abir o zip.

Segundo passo, qual o conteúdo do zip ?

 

É sobre Oracle ou Mysql ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como faço para abrir o zip, quando clico abrir arquivo o código esta assim.

:ds_arquivo := GET_FILE_NAME(V_PATH,null,File_Filter=> '*.ZIP)');

Não da erro ao abrir, mais da erro na importação;

O conteúdo do zip é um arquivo txt.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isto faz parte de alguma rotina ?

É parte de um import/export via RMAN ?

Que erro dá na importação ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que meu caso aqui, o problema está em abrir. o zip.

Pq o arquivo dentro dele, quando descompactado abre normal e importa tranquilo tbm.

Então acho que esse seria meu caso,

mais como fazer para abrir então um arquivo zip, direto, como uma pasta normal?

FAz esse código na hora de importar

 

 

arq := text_io.fopen(:ds_arquivo,'r');  

   text_io.get_line(arq,linha);

 begin
   loop


   m_fg_importa := true;

   	----- pra cada linha, separa os campos
 text_io.get_line(arq,linha);

   pos := instr(linha,'CODIGO');
   if pos = 0 then
      j := 1;
     for i in 1..10 loop
         pos := instr(linha, ';', j);
         m_campo := substr(linha, j, pos - j);
         j := pos + 1;
       	if i = 1 then
       	   m_cd_red := substr(m_campo, 1, 4);
        	elsif i = 2 then
        	   m_cd_pf := substr(m_campo, 1, 7);
         end if;
     end loop;

     --Faz update na tabela pessoa_fisica.

     BEGIN
         if m_cd_redome is not null then

       	update pessoa_fisica
       	set cd_red = m_cd_red
       	where cd_pessoafisica = m_cd_pf;

         else

       	controle_de_msg('NOT','Não possui cadastro no RED');
         END IF;   
     END;
   end if;
   end loop;

exception
	when no_data_found then
 	  null;
   when others then
   controle_de_msg('NOT', 'Erro não tratado! Informe o suporte!' || ' (' || sqlerrm || ')');
 end;  

 text_io.fclose(arq);    
 forms_ddl('commit');  
 controle_de_msg('NOT','Arquivo importado com sucesso!');

 

O erro que da é esse ORA-01403. Não encontra nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ORA-01403: no data found

Cause: No data was found from the objects.

Action: There was no data from the objects which may be due to end of fetch.

 

Fonte

 

Estranho pois é tratado pelo exception.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ORA-01403: no data found

Cause: No data was found from the objects.

Action: There was no data from the objects which may be due to end of fetch.

 

Fonte

 

Estranho pois é tratado pelo exception.

 

Pois então. Isso só quando tento abrir o zip, quando abro em csv ou txt, faz a importação tranquilo, sem problemas. Teria alguma forma, de quando clicar em abrir, eu ir abrindo o zip como uma pasta normal.

O erro está dando nessa linha

text_io.get_line(arq,linha);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que a solução é abrir o zip na mão e ler o arquivo importado.

Abrir zip via Oracle, desconheço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que a solução é abrir o zip na mão e ler o arquivo importado.

Abrir zip via Oracle, desconheço.

POis eh, o problema é o usuário pensar assim. RS

Fiz algo assim agora, entro no zip, mais não poderia ser assim, porque sempre ira mudar o nome da pasta

:ds_arquivo := GET_FILE_NAME('nome do caminho\arquivo.zip',null,File_Filter => '.zip%');

Até funcionou, entro sem precisar descompactar, porém aquilo que falei ele sempre vai mudar o nome da pasta.

Mais alguma dica??

O negocio ta difícil....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não teria como você. descompactar o arquivo de dentro do forms usando um descompactador que aceite linha de comando (dos/unix) talvez este resolva , (não testei), descompacte diretamente para um diretório e leia de lá, depois exclua o arquivo.

 

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não teria como você. descompactar o arquivo de dentro do forms usando um descompactador que aceite linha de comando (dos/unix) talvez este resolva , (não testei), descompacte diretamente para um diretório e leia de lá, depois exclua o arquivo.

 

Espero ter ajudado.

Olá, na empresa aqui decidimos descompactar atraves da rede. De tempos em tempos.

Ou seja, a cada 5 minutos verifica se possui alguma arquivo .zip e descompacta. Ai quando a pessoa for fazer a importação os arquivos csv já estariam descompactados.

 

Obrigada pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente,

 

O maior problema que está usando o TEXT_IO do Forms/Reports 6i/10g, então só arquivo texto, porém, tu pode criar uma rotina no seu Forms que ao fornecer o arquivo ZIP, use pacotes com JAVA que faça a descompactação do arquivo interagindo com o Sistema Operacional e execute um WINZIP dá vida via linha do comando. Ao extrair o arquivo TXT para um diretório que deseja, use o TEXT_IO para ler o arquivo e carregar os dados para o banco de dados.

 

Abraços,

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.