首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在txt文件中使用开关-h-1时出现转换错误

在txt文件中使用开关-h-1时出现转换错误
EN

Stack Overflow用户
提问于 2018-07-13 01:46:18
回答 1查看 27关注 0票数 0

我已经写了一个windows批处理脚本,从POS系统下载库存,然后将其上传到另一个文件。我在上传过程中一直收到错误,我最终发现这是因为在标题下面的txt文件中生成了连字符:

代码语言:javascript
复制
sku                quantity
------------------------------
1234                 1

我可以使用switch -h-1删除整个标头,但是在尝试重新添加标头(没有连字符)时,我遇到了数据转换错误。请参阅下面的sql。错误消息为:“将数据类型varchar转换为numeric时出错”,第3行

代码语言:javascript
复制
set nocount on
SELECT 'sku' AS sku, 'quantity' AS sku
UNION
SELECT  CAST(IM_BARCOD.BARCOD AS VARCHAR(32)) as sku, case when 
IM_INV.QTY_AVAIL > 0 then IM_INV.QTY_AVAIL else CAST(0 AS VARCHAR(32)) END as 
quantity
FROM        IM_BARCOD INNER JOIN IM_INV ON IM_INV.ITEM_NO = IM_BARCOD.ITEM_NO 
INNER JOIN 
        IM_PRC ON IM_INV.ITEM_NO = IM_PRC.ITEM_NO INNER JOIN 
        IM_ITEM ON IM_INV.ITEM_NO = IM_ITEM.ITEM_NO
WHERE   (IM_ITEM.TRK_METH = 'N' AND IM_INV.LOC_ID = 'MAIN')
UNION
SELECT  CAST(IM_BARCOD.BARCOD AS VARCHAR(32)) as sku, case when 
IM_INV_CELL.QTY_AVAIL > 0 then IM_INV_CELL.QTY_AVAIL else CAST(0 AS 
VARCHAR(32)) END as quantity
FROM        IM_BARCOD INNER JOIN IM_PRC ON IM_BARCOD.ITEM_NO = IM_PRC.ITEM_NO 
INNER JOIN 
        IM_INV_CELL ON IM_BARCOD.ITEM_NO = IM_INV_CELL.ITEM_NO AND 
IM_INV_CELL.DIM_1_UPR=IM_BARCOD.DIM_1_UPR AND 
IM_INV_CELL.DIM_2_UPR=IM_BARCOD.DIM_2_UPR AND 
IM_INV_CELL.DIM_3_UPR=IM_BARCOD.DIM_3_UPR INNER JOIN 
        IM_ITEM ON IM_BARCOD.ITEM_NO = IM_ITEM.ITEM_NO
WHERE   (IM_ITEM.TRK_METH = 'G' AND IM_INV_CELL.LOC_ID = 'MAIN')

但是,我正在尝试将数值字段转换为varchar。有什么想法吗?我是基于stack overflow的另一篇文章来尝试这个的。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-07-13 01:54:51

在这一行中:

代码语言:javascript
复制
case when IM_INV.QTY_AVAIL > 0 then IM_INV.QTY_AVAIL else CAST(0 AS VARCHAR(32)) END

您需要在THEN子句中将qty_avail转换为varchar(32)。否则,它将尝试将该列隐式转换为数字数据类型。

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

https://stackoverflow.com/questions/51311675

复制
相关文章

相似问题

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