【发布时间】:2015-02-19 02:58:02
【问题描述】:
我的选择是从table 1 插入到table 2,当我运行它时,我收到以下消息:
消息 8114,第 16 级,状态 5,第 5 行
将数据类型 varchar 转换为数值时出错。
我从 varchar 转换为 numeric 的列是:
- 标题
- 坎比奥
- 液体
- 结果
如果我从选择中删除这些列,它工作正常。
这是实际的选择:
INSERT INTO SICAVS1_Transacciones_con_ISIN
(tipo_operacion, fecha, cod_operacion,
nombre, titulos, cambio, liquido,
resultado, ISIN )
SELECT DISTINCT st.tipo_operacion
, st.fecha
, st.cod_operacion
, st.nombre
, cast(st.titulos as DECIMAL(16,2))
, cast(st.cambio as DECIMAL(16,2))
, cast(st.liquido as DECIMAL(16,2))
, cast(st.resultado as DECIMAL(16,2))
, st.ISIN
FROM temp_Transacciones st WHERE NOT EXISTS
(SELECT 1
FROM SICAVS1_Transacciones t2
WHERE t2.tipo_operacion = st.tipo_operacion
AND t2.fecha = st.fecha
AND t2.cod_operacion = st.cod_operacion
AND t2.nombre = st.nombre
AND t2.ISIN = st.ISIN)
这是 SICAVS1_transacciones_con_ISIN[dbo].[SICAVS1_Transacciones_con_ISIN] 的表格方案
[ID] [int] IDENTITY(1,1) NOT NULL,
[tipo_operacion] [varchar](30) NULL,
[fecha] [varchar](10) NULL,
[cod_operacion] [varchar](6) NULL,
[nombre] [varchar](32) NULL,
[titulos] [decimal](16, 2) NULL,
[cambio] [decimal](16, 2) NULL,
[liquido] [decimal](16, 2) NULL,
[resultado] [decimal](16, 2) NULL,
[ISIN] [varchar](20) NULL,
[fecha_valor] [date] NULL,
[type] [varchar](14) NULL,
[categoria_1] [char](35) NULL,
CONSTRAINT [PK__BNP_SICA__3214EC27DA21ECEF] PRIMARY KEY CLUSTERED
(
[ID] ASC
) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
【问题讨论】:
-
您能显示
SICAVS1_Transacciones_con_ISIN的表架构吗?您要转换为DECIMAL的列之一似乎不是合适的类型。 -
你的列必须包含你试图转换成十进制(16,2)的字母......因此它会抛出这个错误......
-
你好 Dhaval,这是 SICAVS1_transacciones_con_ISIN 的表格方案
标签: sql sql-server