日期:2014-05-18  浏览次数:20549 次

关于导出CSV的问题
实现:

  从SQLSERVER2005中执行存储过程导出CSV文件,将其自动放到FTP服务器中。
 
  大家给点解决方法。谢谢。

  1、导出CSV方法?

  2、能否放到服务器上?


 

------解决方案--------------------

来个搞笑的

------解决方案--------------------
SQL code

--用sql语句可以参考这个. 


if   exists(select   1   from   sysobjects   where   name= 'File2Table '   and   objectproperty(id, 'IsProcedure ')=1) 
drop   procedure   File2Table 
go 

/*--实现数据导入/导出的存储过程 

可以实现导入/导出   指定表   到文本文件 
支持自定义行/列分隔符 

--邹建   2003.07(引用请保留此信息)--*/ 

/*--调用示例 

导出调用示例 
--导出指定表,这里指定导出表:地区资料 
exec   file2table   'zj ', ' ', ' ', 'c:\zj.txt ', 'xzkh_new..地区资料 ',@rowsplit= ', ' 

导入调用示例 
--导入指定表,这里指定导入表:地区资料 
exec   file2table   'zj ', ' ', ' ', 'c:\zj.txt ', 'xzkh_sa..地区资料 ',0 

--*/ 

create   procedure   File2Table 
@servername   varchar(200) --服务器名 
,@username   varchar(200) --用户名,如果用NT验证方式,则为空 ' ' 
,@password   varchar(200) --密码 
,@filename   varchar(1000) --目录名+文件名 
,@tbname   varchar(500)= ' ' --数据库..表名 
,@isout   bit=1 --1为导出(默认),0为导入 
,@fdsplit   varchar(10)= '\t ' --字段分隔符,默认为制表符 
,@rowsplit   varchar(10)= '\n ' --记录分隔符,默认为回车符 
as 
declare   @sql   varchar(8000) 

set   @sql= 'bcp   " '+@tbname 
+case   when   @isout=1   then   ' "   out '   else   ' "   in '   end 
+ '   " '+@filename+ ' "   /c ' + '   /S " '+@servername 
+case   when   isnull(@username, ' ')= ' '   then   ' '   
else   ' "   /U " '+@username   end 
+ ' "   /P " '+isnull(@password, ' ')+ ' " ' 
+ '   /t " '+@fdsplit+ ' " ' 
+ '   /r " '+@rowsplit+ ' " ' 

exec   master..xp_cmdshell   @sql 
go

------解决方案--------------------
自动导入到CSV容易,但是放到FTP可能就不是数据库该干的活了
------解决方案--------------------
把CSV文件直接导出到FTP相应的文件夹里不行吗?
------解决方案--------------------
linux平台
http://blog.csdn.net/MpIceer/archive/2009/01/29/3854491.aspx

http://www.docin.com/p-3480437.html

windows
http://www.cn-dos.net/forum/blog.php?tid=27694&uid=74003
------解决方案--------------------
局域网内吗?.
把目录共享出来.映射一下网盘.bcp到这个网盘.不就可以了?.
外网.你导出来了.怎么导过去就是你的事了.