在 BCP.FMT 中查找 T-SQL 批量插入的正确数据类型标记
我有一个 bcp.fmt 文件,用于 T-SQL 中的批量插入(比 SSIS 更易于传输和用户可读),但不知道目标表中 DATETIME 列的 SQLCHAR 等效项(奇怪的是,我什至不知道从谷歌得到答案)。因此,我收到此错误:
Msg 4864,Level 16,State 1,Line 1 第 1 行第 4 列 (ModifyDate) 的批量加载数据转换错误(类型不匹配或指定代码页的字符无效)。
这不是一个不合理的错误消息 - 我只需要找到等效的目标数据类型引用,对吧?
从下面的 FMT 文件中摘录:
4 SQLCHAR 0 8 ";" 4 修改日期 SQL_Latin1_General_CP1_CI_AS
I have a bcp.fmt file for a bulk insert in T-SQL (more transportable and user-readable than SSIS), but don't know the SQLCHAR equivalent for a DATETIME column in my destination table (bizarrely, I can't even get an answer from Google). As a consequence, I'm getting this error:
Msg 4864, Level 16, State 1, Line 1
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 1, column 4 (ModifyDate).
It's not an unreasonable error msg - I just need to find the equivalent target data type reference, right?
Extract from FMT file below:
4 SQLCHAR 0 8 ";" 4 ModifyDate SQL_Latin1_General_CP1_CI_AS
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用 SQLCHAR 但为输入设置正确的日期格式。例如
SET DATEFORMAT dmy;
SET DATEFORMAT (Transact-SQL)
或者,如果您控制输入文件,则使用 ISO 8601 格式来实现明确的输入。
Use SQLCHAR but set the correct dateformat for the input. e.g.
SET DATEFORMAT dmy;
SET DATEFORMAT (Transact-SQL)
Or if you control the input file then use an ISO 8601 format for unambiguous input.