sql格納プロセスから指定データを.txtファイルにエクスポートする(タイミング)
1789 ワード
需要:毎日1部のtxtファイルのデータを生成して、第三者にhttp方式で呼び出させます。
方法:
1、新規記憶プロセス:
3、空いているウェブサイトを作成し、第1のステップで生成したtxtファイルをこのウェブサイトの固定ディレクトリに生成し、第三者が「http://xxxx:8005/datalist/2014-03-21.txt」にアクセスすることができる。
方法:
1、新規記憶プロセス:
USE [LocojoyMicroMessage]
GO
/****** Object: StoredProcedure [dbo].[sp_ExportTxt] Script Date: 03/24/2014 10:08:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:xxx
-- Create date:xxxx-xx-xx
-- Description:
-- =============================================
-- xp_cmdshell
-- EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
-- : 1
ALTER PROCEDURE [dbo].[sp_ExportTxt]
AS
Begin
declare @sqlstr varchar(3000)
declare @pathStr varchar(3000)
declare @fileName varchar(3000)
set @pathStr='c:\abc\'
--
set @fileName=' _'+convert(varchar(10),getdate()-1,112)
select CONVERT(varchar(50), col1, 20)+'|'+CONVERT(varchar(50),gameServerId)+'|' + case Productid when 'xxx' then 'TWD' else 'USD' end +'|' +CONVERT(varchar(50),isnull(amount,0))+'|' +
+ CONVERT(char(6),logTime,112) as colName
into ##TemAAADate from dbo.
where CONVERT(varchar(100), logTime, 23)=CONVERT(varchar(100), GETDATE()-1, 23) --
set @sqlstr='bcp "select * from ##TemAAADate" queryout "' + @pathStr + @fileName +'.txt" -c -T -x'
exec master.dbo.xp_cmdshell @sqlstr
drop table ##TemAAADate
End
-- EXEC [dbo].[sp_ExportTxt]
2、sql作業代理exec上の保存プロセスを作成し、毎日午前1時に実行する。3、空いているウェブサイトを作成し、第1のステップで生成したtxtファイルをこのウェブサイトの固定ディレクトリに生成し、第三者が「http://xxxx:8005/datalist/2014-03-21.txt」にアクセスすることができる。