首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以前起作用的SQL查询不再工作了。

以前起作用的SQL查询不再工作了。
EN

Stack Overflow用户
提问于 2018-11-27 14:41:59
回答 2查看 356关注 0票数 0

我每天被提供的excel文件包含一个空格,其中一个数字应该是整数。当我简单地通过替换并在查询中转换来替换它时,这是很容易修复的。但是,现在我从.NET核心切换到了NodeJS,当我尝试使用相同的查询时,它并没有像预期的那样进行。下面是我正在处理的查询。

代码语言:javascript
复制
"INSERT INTO table SELECT ANvarChar, CONVERT(INT, replace(AVarchar,' ', '')), AnotherVarCharFROM TempImport"

当我通过C#运行它时,使内部server数据库的worked工作正常,但是现在我使用mssql在linux上做了同样的工作。

代码语言:javascript
复制
"BULK INSERT TempImport FROM '" + csvFilePath + "' WITH (FIELDTERMINATOR = '||', ROWTERMINATOR = '\n');"

它抛出错误:

RequestError:当将varchar值'AVarchar‘转换为数据类型int时,转换失败。

很明显,在这种情况下,转换和替换不起作用,我能做什么呢?我已经尝试了通过转换器,在下载期间,没有任何运气。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-27 15:22:57

替换后的角色可以是空间以外的东西。您可以检查数据是否包含以下替换后的空间:

代码语言:javascript
复制
SELECT * FROM (
SELECT ANvarChar, replace(AVarchar,' ', '') as TEST, AnotherVarChar FROM TempImport
) as Conv
WHERE TEST LIKE '% %'

这不应返回任何行。在这种情况下,应该添加其他空格替换(就像Zeki在注释中建议的那样)。

票数 0
EN

Stack Overflow用户

发布于 2018-11-27 15:37:14

我发现了这个问题,我忘了从CSV文件中删除列名。显然,列名不能导入到整数中,从而导致崩溃。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53502145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档