sql写文件 设定文件格式 utf-8 unicode

--方法一

 

declare @objecttoken int
 exec sp_oacreate 'adodb.stream', @objecttoken output
 exec sp_oasetproperty @objecttoken, 'type', 2
 exec sp_oasetproperty @objecttoken, 'charset','utf-8'
 exec sp_oamethod @objecttoken, 'open'

 --写入数据
 declare syskursor insensitive scroll cursor for
  select txt from @file_temp order by id 
 open syskursor
 fetch syskursor into @strcmd
 while @@fetch_status = 0
 begin
  --execute @ole = sp_oamethod @file, 'writeline', null, @strcmd  
  exec sp_oasetproperty @objecttoken, 'writetext',@strcmd  
 fetch syskursor into @strcmd
 end
 close syskursor
 deallocate syskursor

 exec sp_oamethod @objecttoken, 'savetofile', null, @fileName, 2
 exec sp_oamethod @objecttoken, 'close'
 exec sp_oadestroy @objecttoken

 

--方法二:
alter   procedure [dbo].[usp_create_txtfile](@filename varchar(200))
as
begin
 declare @strcmd varchar(2048),
  @fs int,
  @ole int,
  @file int

 --删除存在的文件
 select @strcmd = 'del '+ @filename
 execute @ole = sp_oacreate 'scripting.filesystemobject', @fs out
 exec master..xp_cmdshell @strcmd, no_output
 
 --创建文件
 execute @ole = sp_oamethod @fs, 'opentextfile', @file out, @filename, 8, 1
 --写入数据
 declare syskursor insensitive scroll cursor
  for select export_col from export_download order by no

 open syskursor
 fetch syskursor into @strcmd
 while @@fetch_status = 0
 begin
  execute @ole = sp_oamethod @file, 'writeline', null, @strcmd
 fetch syskursor into @strcmd
 end
 close syskursor
 deallocate syskursor
 --关闭文件
 execute @ole = sp_oadestroy @file
 execute @ole = sp_oadestroy @fs
end

转载于:https://www.cnblogs.com/kuailewangzi1212/archive/2010/09/01/1814440.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值