我的新表是
create table #Det_rec(
C_ID varchar(16),
Allot_Quan decimal(12,3),
LocIn_Allot_Quan decimal(12,3),
LRC smallint default 00,
LocIn_R varchar(50) DEFAULT ' ',
LocIn_Date datetime default ' ',
Filler numeric(8) default ' ',
RTA_Ref_No varchar(8) default'CDSL----',
isin_opt varchar(10))
执行插入操作时
INSERT INTO #Det_rec (C_ID,Allot_Quan,isin_opt)
select
t.credit_dpclid,
cast(t.qty as decimal(12,3)),
t.isin_opt
from fin_mst f inner join #temps t on f.IHNO = t.IHNO
我收到了像
这样的错误Msg 8114,Level 16,State 5,Line 1 将数据类型varchar转换为数字
时出错
我已经应用了转换投射功能,但我仍然收到此错误。
答案 0 :(得分:0)
尝试使用此代码,因为任何一个数量值都可能是字符串。
CREATE TABLE #Det_rec
(
C_ID VARCHAR(16),
Allot_Quan DECIMAL(12, 3),
LocIn_Allot_Quan DECIMAL(12, 3),
LRC SMALLINT DEFAULT 00,
LocIn_R VARCHAR(50) DEFAULT ' ',
LocIn_Date DATETIME DEFAULT ' ',
Filler NUMERIC(8) DEFAULT ' ',
RTA_Ref_No VARCHAR(8) DEFAULT'CDSL----',
isin_opt VARCHAR(10)
)
INSERT INTO #Det_rec
(C_ID,
Allot_Quan,
isin_opt)
SELECT t.credit_dpclid,
cast(t.qty AS DECIMAL(12, 3)),
t.isin_opt
FROM fin_mst f
INNER JOIN #temps t
ON f.IHNO = t.IHNO
WHERE isnumeric(t.qty) = 1