记一次使用openrowset 的坑

时间:2023-03-08 21:16:24

前几天被老大训斥连openrowset 都不会用,然后我就去看了文档,想测试一下栗子~

openrowset 的具体语法我就不贴了,戳这里:https://msdn.microsoft.com/zh-cn/library/ms190312(v=sql.120).aspx

按照文档里面的样例来测试,首先创建一个文档 values.txt

1    Data 1 For
2 Data 2 For
3 Data 3 Fro

然后创建一个格式化文件 v.fmt ,具体非xml格式化文件的写法戳这里 :https://msdn.microsoft.com/zh-cn/library/ms191479(v=sql.120).aspx

9.0
2
1 SQLCHAR 0 10 "\t" 1 ID SQL_Latin1_General_CP1_CI_AS
2 SQLCHAR 0 10 "\r\n" 2 Desc SQL_Latin1_General_CP1_CI_AS

然后把这2文档都放在D盘的根目录下,然后执行

SELECT * FROM OPENROWSET( BULK 'D:\values.txt',FORMATFILE = 'D:\v.fmt') AS a;

然后挺萌的出现了 由于文件“D:\v.fmt”不完整或无法读取,无法进行大容量加载。操作系统错误代码为 (null)。

然后我找啊找 ……关键是错误代码是 Null 无法找啊!!!

最后……看到是因为不完整或无法读取,我确定原因应该是文件权限或者文件本身问题。然后我先将2个文件按照单行输出,都正常,确认不是文件权限的问题。

然后另外一个不完整。不完整这个,我唯一想到一次因为少了个换行导致不成功,然后我鬼使神差的在fmt文件最后加了一个换行……然后~重新执行!!成功啦!!!!!!

PS:别看说得轻松,实际调试了2个多小时/(ㄒoㄒ)/~~