Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server BCP为有效的日期格式抛出“无效字符值强制转换”?_Sql Server_Bcp - Fatal编程技术网

Sql server BCP为有效的日期格式抛出“无效字符值强制转换”?

Sql server BCP为有效的日期格式抛出“无效字符值强制转换”?,sql-server,bcp,Sql Server,Bcp,在CentOS 7上使用mssql工具包中的bcp。试图将TSV文件复制到SQL Server 2012表中,并出现错误: @第1行第4列:转换规范的字符值无效@ 在vi中打开tsv并使用:set list显示制表符分隔符,此记录看起来像 123456年9月26日,我的名字是1234-2134^IY^I,我的名字是12345^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^

在CentOS 7上使用mssql工具包中的bcp。试图将TSV文件复制到SQL Server 2012表中,并出现错误:

@第1行第4列:转换规范的字符值无效@

在vi中打开tsv并使用:set list显示制表符分隔符,此记录看起来像

123456年9月26日,我的名字是1234-2134^IY^I,我的名字是12345^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I解决方案^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^$ 所以我们可以看到第4列是一个日期字符串文字,形式为dd mon yy。对我来说,这应该与SQL Server中的字母格式相匹配

dd-mon[,][yy]yy

尽管请注意,这是针对SQL Server 2017的,因为我找不到2012年的文档,并且已确认目标表中的第4列实际上需要日期类型。通过查询信息架构

选择序号位置、列名称、数据类型、字符最大长度 ,是否可为空 从信息_SCHEMA.COLUMNS 其中TABLE_NAME='MYTABLE' 序号位置列名称数据类型字符最大长度可为空 1帐户ID bigint NULL否 2账户名称varchar 160是 3联系人varchar 410是 4出生日期空是 5性瓦尔查50是的 ... BCP命令如下所示:

推荐的导入模式=-c /opt/mssql tools/bin/bcp$TABLENAME in$filename\ -新加坡元目的地IP\ -U$用户-P$密码\ -d$DEST_DB\ $recommed\u导入\u模式\ -t\t\ -e$EXPORT\u STAGE/$TABLENAME/$TABLENAME.bcperor.log
有人知道这里会发生什么吗?有任何进一步的调试建议吗?

为什么需要发布以前版本的其他版本?@SMor在这个问题中,我修改了记录值,以实际匹配文档dd mon yy中指定的有效日期格式,而不是另一个问题中的dd mon yy。然而,即使在使用了我认为现在是有效的日期格式之后,仍然会从bcp得到类型错误,所以问了一个以bcp为中心的问题。上一个问题问,为什么sql server在查询时能够从bcp和sql server文档的角度处理无效的日期格式,这个问题更多的是问bcp对于假定有效的日期格式字符串可能有什么问题。为什么您需要发布以前版本的另一个版本?@SMor在这个问题中,我修改了记录值以实际匹配文档dd mon yy中指定的有效日期格式,而不是另一个问题中的dd mon yy。然而,即使在使用了我认为现在是有效的日期格式之后,仍然会从bcp得到类型错误,所以问了一个以bcp为中心的问题。上一个问题问为什么sql server在查询时能够从bcp和sql server文档的角度处理无效的日期格式,这个问题更多的是问bcp在假定的有效日期格式字符串方面可能存在什么问题。