首页 > 其他 > 详细

使用OPENROWSET(BULK...)从平面文件加载数据

时间:2015-06-14 06:55:30      阅读:212      评论:0      收藏:0      [点我收藏+]

把整个flatfile读取成二进制数据流,这个时候你需要自己再用cast+substring的方法去截取数据成为栏位

SELECT *, CAST(BulkColumn as varchar(max)) FROM OPENROWSET(BULK N‘D:\Test.txt‘, SINGLE_BLOB) AS Document;

 

另一种做法是用formatfile,这样select出来的数据栏位已经按formatfile定义好的格式显示出来

SELECT a.* FROM OPENROWSET( BULK ‘D:\Test.txt‘, FORMATFILE = ‘D:\test.fmt‘) AS a;

 

那formatfile怎么生成的呢?

bcp JerryDB.dbo.ssis_merge_test format nul -c -f D:\test.fmt -S JERRYCHENLAP\MSSQLSERVER2014 -T

 

上面的命令行生成下面的数据到D:\test.fmt这个文件

10.0
3
1 SQLCHAR 0 24 "\t" 1 col1 ""
2 SQLCHAR 0 100 "\t" 2 col2 Chinese_PRC_CI_AS
3 SQLCHAR 0 12 "\r\n" 3 col3 ""

 

参考:

创建格式化文件

https://technet.microsoft.com/zh-cn/library/ms191516(v=sql.90).aspx 

OPENROWSET (Transact-SQL)

https://msdn.microsoft.com/zh-cn/library/ms190312.aspx

使用格式化文件大容量导入数据

https://technet.microsoft.com/zh-cn/library/ms178129(SQL.90).aspx

 

使用OPENROWSET(BULK...)从平面文件加载数据

原文:http://www.cnblogs.com/jenrrychen/p/4574488.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!