Ir para conteúdo

Arquivado

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

lwazevedo

Transformar código para PL/SQL

Recommended Posts

Boa Tarde.

 

Pessoal não possuo muito conhecimento em PL/SQL então gostaria de um auxilio para transformar um código para plsql.

 

segue o código.

 

 

Importação de um csv.

imput from value("c:\temp\dados.csv").

repeat :
       import unformatted linha.

       /* Verifica se existe o registro na temp */
       find tabela_dados where tabela_dados.id = entry(1,linha,";").
       if not avail tabela_dados then do:
      
                /* se não existe o registro inseri/cria na tabela */
                create tabela_dados.
                assign 
                          tabela_dados.id = entry(1,linha,";")
                          tabela_dados.nome = entry(2,linha,";")
                          tabela_dados.dtUltimoAcesso = entry(3,linha,";")
                          tabela_dados.qtdAcesso          = 1.

      end.
      else do:
                 /* se existe os dados atualiza */

               if tabela_dados.dtUltimoAcesso < entry(3,linha,";") then 
                  tabela_dados.dtUltimoAcesso = entry(3,linha,";").

               tabela_dados.qtdAcesso =  tabela_dados.qtdAcesso + 1.
      end.
end.

input close.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ajuda saber o que faz cada comando , por exemplo este create tabela_dados. é de fato uma criação de uma tabela de bd ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi mal Motta.

 

Segue o código mais detalhado.

imput from value("c:\temp\dados.csv"). /*importa um arquivo de um diretorio*/


repeat : /* laço de repetição*/
       
       import unformatted linha.  /* importa a linha do arquivo conforme esta no arquivo*/

       /* Find verifica se existe um registro na tabela conforme condição*/

       find tabela_dados where tabela_dados.id = entry(1,linha,";") no-lock no-error.

       /* valida se o registro foi localizado na tabela*/
       if not avail tabela_dados then do:
      
                /*Caso a tabela esteja vazia cria um registro novo na tabela*/
                create tabela_dados.
                
               /* inseri os valores no registro criado*/ 
                  assign 
                     /* pega o registro antes do primeiro ;*/
                     tabela_dados.id = entry(1,linha,";") 
                     
                     /* pega o registro antes do segundo ;*/
                     tabela_dados.nome = entry(2,linha,";") 
                     
                    /** pega o registro antes do terceiro ; */
                     tabela_dados.dtUltimoAcesso = entry(3,linha,";") 
                    
                      tabela_dados.qtdAcesso          = 1.

      end.
      else do:
               /* localizo o registro na tabela*/

           /*verifica se a data de ultimo acesso e menor que a atual*/    
           if tabela_dados.dtUltimoAcesso < entry(3,linha,";") then 
              /*se for atualiza os dados*/
              /** pega o registro antes do terceiro ; */
              assign tabela_dados.dtUltimoAcesso = entry(3,linha,";").

              /*atualiza o campo qtdAcesso valor atual + 1 */
              assign tabela_dados.qtdAcesso =  tabela_dados.qtdAcesso + 1.
      end.
end. /*finaliz ao laço repeat*/

input close. /*finaliza a importação.*/

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem tempo par transformar o código mas :

 

Para tratamento de arquivo pesquise pela package dbms_output

 

Para Leitura de um registro use o select do SQL , atente que em plsql um select "solto" deve trazer 1 e somente 1 registro , fora isto use cursor

 

Criar um registro numa tabela insert do sql

 

Atualizar um registro update

 

Não tem nada tipo "pega o registro antes do terceiro" tem de ponteirar via sql

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.