Ir para conteúdo

POWERED BY:

Arquivado

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

Ricardo Santos Bezerra

Gerar arquivos txt

Recommended Posts

Bom dia!

 

Alguém pode ajudar com um problema?

 

Eu criei jobs no BIDS e estão funcionando conforme solicitado, porém, agora surge algo novo...ao final de cada job, preciso criar uma função que verifique a última data de execução dos jobs e, todas as informações da dimensão que aparecerem à partir dessa data, devem ser geradas automaticamente em um arquivo txt, para depois (manualmente por uma outra pessoa) esse txt possa ser integrado a um Teradata.

 

Obrigado.

 

Ricardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia!

 

Como já criou o job no Business Intelligence Development Studio, crie mais um step para checar esta informação na sysjobhistory:

select * from sysjobhistory

A chave é o campo JOB_ID que esta na sysjobs

 

Ela tem todas as execuções e ultima execução da job.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me surgiu algumas duvidas:

"preciso criar uma função que verifique a última data de execução dos jobs"

ok, pela sysjobhistory temos esta informacao.

 

todas as informações da dimensão que aparecerem à partir dessa data

quando gera as dimensoes, voce grava isso em uma tabela ou nao guarda historico?

 

devem ser geradas automaticamente em um arquivo txt

pode ser feito até por BCP, mas vai depender da sua dimensão.

 

Qual a sua versao do SQL?

 

e vamos que vamos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado A. Jr.

 

O sysjobhistory aparece como inexistente...algo errado de minha parte?

 

Nas dimensões: Extraio informações de Bases de dados e planilhas Excel, alimento essas informações em um Teradata de homologação e depois implantaremos em produção (Teradata também)...mas meu chefe disse que, após rodar cada job, tudo que foi atualizado nessa execução do dia deverá gerar automaticamente um aruivo txt...esse aruivo mais tarde será implementado pelo DBA.

 

Versão: não sei se é isso que você quer saber --> 9.030729.1

Compartilhar este post


Link para o post
Compartilhar em outros sites

O sysjobhistory aparece como inexistente...algo errado de minha parte?

Erro da minha parte. Ela fica no banco MSDB, então o select correto seria assim:

select * from msdb..sysjobhistory

 

Nas dimensões: Extraio informações de Bases de dados e planilhas Excel, alimento essas informações em um Teradata de homologação e depois implantaremos em produção (Teradata também)...mas meu chefe disse que, após rodar cada job, tudo que foi atualizado nessa execução do dia deverá gerar automaticamente um aruivo txt...esse aruivo mais tarde será implementado pelo DBA.

Então na verdade serão duas tarefas: Exportar para Excel e para TXT a mesma informações, correto? Ao menos foi o que eu entendi.

Se for realmente isso, eu acho que utilizaria o BCP, conhece? Ele exporta para txt e você pode colocar em qualquer local da sua rede.

 

Versão: não sei se é isso que você quer saber --> 9.030729.1

Significa que a sua versão é o SQL2005.

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

1- Vi que o comando é o certo mesmo agora, mas sou terceiro e não tenho permissão para executá-lo...ao menos foi o que apareceu pra mim.

 

2- Na vdd eu extaio de excel ou bases de data marts e depois carrego no dw q é um teradata aki...o q preciso é, fazer o processo de etl(ja pronto e funcionando) e depois como a carga será diária, teria q bolar algo no bids q só o q executou no dia(pra isso verificar a ultima data e pegar so o q for depois da ultima data, nada antes dela) e o q tiver de informação nesse periodo(o dia), transformar automaticamente em um txt e, aparecer em um diretorio q nao pode ser hard code, tem q ser mutavel(pq nao serei eu quem utilizara esse txt).

 

3- A versão é a do sql 2008 :(

 

saco, né?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo fato de ser terceiro, infelizmente sei como são os acessos.

Agora, assim, creio que terá que fazer um pacote DTSx para este tipo de tarefa e executar após a job.

Pq um DTSx?! Porque você vai ter que passar parametro, no caso o diretório.

Fiz um uma vez para uma consultoria que prestei, mas o básico pode ser obtido neste link:

http://www.linhadecodigo.com.br/artigo/3093/sql-server-integration-service-overview.aspx

 

Com relação as datas de execução e a data dos dados em si, teremos que ver um meio de pegar estes valores para exportar.

 

Verifique o artigo e se não tiver acesso, me avise que te mando por email.



ps. em tempo:

Parâmetros: http://msdn.microsoft.com/pt-br/library/hh213214.aspx

Execução dos parâmetros: http://msdn.microsoft.com/pt-br/library/ms162810(v=sql.105).aspx

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com certeza vão surgir sim dúvidas, mas de uma olhada. Lendo parece difícil, mas é mole que nem pudim.

A minha versão de DB é 2012 e meu VS é 2010, mas se tiver dúvidas, posso tentar fazer um exemplo simples do ponto que tiver dúvidas.

 

Boa sorte :devil:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu usei o comando

 

grant all to "ricardo.bezerra"

 

e deu certo...passei a ter acesso ao comando

 

select * from msdb..sysjobhistory

 

verifico a data e horário da execução dos jobs...mas e agora, qual seria o proximo passo? existe um comando para gerar o txt assim como para xml?

 

for xml auto

 

ja tentei for txt auto...kkkk...for file auto e nao deu certo...kkk

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, não tem uma fórmula para exportar TXT assim não... quem dera se tivesse.

Tem um comando no BIDS que exporta, mas vou estar no meu pc somente em uma ou duas horas, mas você pode tentar algo assim:

Tabela:

exec master..xp_cmdshell 'bcp BASE..TABELA out ARQUIVO.txt -SSERVIDOR -T -c'

 

Resultado de consulta:

Exec master..xp_cmdshell 'bcp "select * from DATABASE..TABELA WHERE CAMPO = VALOR " queryout "UNIDADE:\ARQUIVO.txt" -c -T'

 

Veja se funciona.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

não sei o q ocorre...apareceu q eu tinha ficado como master...funcionou o primeiro comando q te falei..agora esses 2 diz q nao tenho permissao.

 

só uma coisa..na barra de tarefas eu tenho como converter uma query em txt...pq sera q nao tem um comando via script?

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc esta bloqueado para usar o xp_cmdshell. Normal em grandes empresas.

Tem uma caixa que exporta o resultado de uma query em txt.. file text server... nao lembro o nome, mas esta proxima do t-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.