Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Script basico.


ricardo.bezerra

Pergunta

Bom dia!

Como posso criar um script simples com as seguintes condições:

Existe a planilha X no diretório C:\Pasta? Se sim, subir essa planilha para o meu B.D SQL e em seguida deletá-la desse diretório automaticamente e se não existir a planilha passa para a próxima planilha.

Por favor pessoal, aceito qualquer ajuda.

Obrigado desde já.

Abraços.

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Bom dia Ricardo,

Este script não é tão simples assim, pois este tipo de manipulação não está bem relacionada com o sql, mas com um aplicativo ou serviço.

O sql não consegue identificar o nome da planilha, pois o comando que deve passar para o sql é "ler planilha X". Desta forma, terá que ter antecipadamente o nome da planilha.

O melhor mesmo seria criar um serviço lendo o diretório das planilhas de tempos em tempos. Assim que identificar alguma planilha na pasta, ler e dar carga na base. Este aplicativo fará todo o controle, cabendo ao sql apenas as funções específicas a ele.

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu Fulvio, já consegui.

declare @Path varchar(128), @FileName varchar(128)

select @Path = 'C:\' , @FileName = 'myfile.txt'

declare @i int

declare @File varchar(1000)

select @File = @Path + @FileName

exec master..xp_fileexist @File, @i out

if @i = 1

print 'exists'

else

print 'not exists'

Meu problema agora é no SSIS:

TITLE: Package Validation Error

------------------------------

Package Validation Error

------------------------------

ADDITIONAL INFORMATION:

Error at JRN015: The expression "@bolFileExists==True" must evaluate to True or False. Change the expression to evaluate to a Boolean value.

Error at JRN015: There was an error in the precedence constraint between "Verifica Aging Dias" and "Executar JRN015".

(Microsoft.DataTransformationServices.VsIntegration)

------------------------------

BUTTONS:

OK

------------------------------

Editado por ricardo.bezerra
Link para o comentário
Compartilhar em outros sites

  • 0

Então, eu estou utilizando o Script Task do SSIS, para localizar ou não a existência de planilhas .xls em um diretório qualquer, mas onde que eu insiro o nome da planilha, para que esse teste de existência localize a planilha certa?

Obrigado.

Ninguém para ajudar?

Editado por ricardo.bezerra
Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal, finalmente o processo foi finalizado e, o SSIS programado encontre as planilhas e insere os dados na tabela e exclui a planilha do diretório...mas ocorre um problema. Depois que o processo é realizado, se eu colocar outra planilha no diretório com umas 3 linhas de informações à mais, o SSIS não insere esses dados e ocorre uma critica. Já aumentei a quantidade de 'MAXIMUNERRORCOUNT' e não adianta nada, o que pode ser?

Os scripts estão assim dentro do meu SSIS:

Alteração:

UPDATE

STG_DIM_PRDT

SET

DS_PRDT = ?,

FL_VOZ_DDOS = ?,

ID_TIPO_PRDT = ?,

DT_INSR_DW = GETDATE(),

DT_ATLZ_DW = GETDATE()

WHERE

ID_PRDT= ?

Inserção:

INSERT INTO STG_DIM_PRDT

(ID_PRDT,

DS_PRDT,

FL_VOZ_DDOS,

ID_TIPO_PRDT,

DT_INSR_DW,

DT_ATLZ_DW)

VALUES(?, ?, ?, ?, GETDATE(), GETDATE())

Pra chamada do JOB estamos utilizando o 'Script Task' para localizar a existência da planilha no diretório e para iniciar o processo do JOB o 'Execute Package Task' e o JOB em si utilizamos nessa ordem: 'Excel Source' >> 'Data Conversion' >> 'Lookup' >> e nesse ponto UPDATE(SQL Command) ou INSERT(SQL Command) que mostrei acima.

O que pode estar errado?

Obrigado.

Ricardo.

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia Rcardo,

Você está utilizando o mesmo nome de pacote para executar a nova alteração? Caso seja, seria interessante alterar o nome, pois o sql grava as informações do pacote em sua log.

Quando você realiza a execução, ele recupera da log informações do pacote. Para não ter problemas, renomeie o novo script.

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia!

Eu já descobri o problema. Coloquei para solicitar uma droga de password e toda vez que vou rodar o pacote, a mensagem é que não localiza o pacote ou que não tenho permissão, mesmo quando coloco a senha correta. Como faço para tirar a obrigatoriedade de senha? Porque tentei rodar um backup dos pacotes e continua a mesma coisa. Por favor...

Obrigado.

Ricardo.

Galera, acho que consegui, desculpem o pedido acima...Em 'Control Flow' cliquei com o direito >> 'Propriedades' >> 'Password' deixei em branco e salvei...tentei rodar e executou corretamente.

Obrigado mesmo assim pela paciência de todos.

Ricardo.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...