Inquiridor
Retornar Procedure em arquivo txt

Pergunta
-
Todas as Respostas
-
vc. pode usar um DTS ou bcp para isso. veja exemplos de BCP em:
http://www.forumweb.com.br/artigos/artigos.php?action=file&id=251
Abs;
-
Marcelo,
Se você estive utilizando o Query Analyzer ou o Management Studio, poder selecionar o botão Result in file, quando seu stored procedure for executada o resultado será gerado um arquivo, faltando somente informar o nome do arquivo.
Outra possibilidade e utilizar o OSQL se você estiver trabalhando com o SQL Server 2000, na caso do SQL Server 2005 utilize o SQLCMD, utilizando a opção -o.
Veja o exemplo:
SQLCMD -SSEUSERVIDOR -USEUUSUARIO -P1223 -o "C:\Resultado.txt"
Select * from Produto
Go
- Sugerido como Resposta Junior Galvão - MVPMVP sábado, 31 de janeiro de 2009 17:17
-
A procedure é executada através de um job.
Não estou conseguindo alterar essa procedure pra gravar em arquivo.
Não entendi como aplicar o BCP. O exemplo do query analyzer não resolve meu problema justamente porque a procedure é executada por um job.
Abraços.
Marcelo Moraes.
-
como vc. nao pode alterar a proc vc. pode fazer assim
create table tabela (campos que a proc retorna )
insert into tabela (campos) exec nome_proc
depois
xp_cmdshell 'bcp .... ' -- coloque aqui o comando bcp para gerar o texto. como nos exemplos.
qualquer coisa retorne.
-
-
veja o exemplo
drop table exemplo
Create Table Exemplo (Campo1 int)insert into exemplo (campo1) Values (1)
insert into exemplo (campo1) Values (2)
insert into exemplo (campo1) Values (3)
insert into exemplo (campo1) Values (4)
insert into exemplo (campo1) Values (5)Create Proc ProcedureExemplo @Parametro int
As
set nocount on
Select * From exemplo where campo1 >= @Parametro
---- comeco da exportacaoCreate Table TxtExportaDados (campo1 int) -- tem que ser igual ao retorno da proc
insert into TxtExportaDados (campo1) Exec ProcedureExemplo 4 -- executando a procedure
Declare @ComandoBcp Varchar(1000)
Set @ComandoBcp = 'Bcp "Select * From seu_banco_de_dados.dbo.TxtExportaDados" queryout "C:\Lista.Txt" -SNome_Servidor -c -t; -T'
exec master..xp_cmdshell @ComandoBcp
Abs;
- Sugerido como Resposta Junior Galvão - MVPMVP sábado, 31 de janeiro de 2009 17:16
-
Marcelo Colla - MVP disse:
veja o exemplo
drop table exemplo
Create Table Exemplo (Campo1 int)insert into exemplo (campo1) Values (1)
insert into exemplo (campo1) Values (2)
insert into exemplo (campo1) Values (3)
insert into exemplo (campo1) Values (4)
insert into exemplo (campo1) Values (5)Create Proc ProcedureExemplo @Parametro int
As
set nocount on
Select * From exemplo where campo1 >= @Parametro
---- comeco da exportacaoCreate Table TxtExportaDados (campo1 int) -- tem que ser igual ao retorno da proc
insert into TxtExportaDados (campo1) Exec ProcedureExemplo 4 -- executando a procedure
Declare @ComandoBcp Varchar(1000)
Set @ComandoBcp = 'Bcp "Select * From seu_banco_de_dados.dbo.TxtExportaDados" queryout "C:\Lista.Txt" -SNome_Servidor -c -t; -T'
exec master..xp_cmdshell @ComandoBcp
Abs;
Parabéns Marcelo, já me ajudou e assim pude execurar esse exemplo sem problemas.